【Java字符串】以星号遮盖字符串中间或两边

【代码】

复制代码
package test105;

public class Shadow {
    public static void main(String[] args) {
        String retval=shadowCenter("abcde12345",3,8);
        System.out.println(retval);
        
        retval=shadowEdge("abcde12345",3,8);
        System.out.println(retval);
    }
    
    /**
     * 以星号遮盖字符串中间
     * @param origin 原文
     * @param start 起始位置
     * @param end 终止位置
     * @return 遮盖后的字符串
     */
    public static String shadowCenter(String origin,int start,int end) {
        char[] arr=origin.toCharArray();
        final int len=arr.length;
        if(end>len) {
            end=len;
        }
        
        for(int i=start-1;i<end;i++) {
            arr[i]='*';
        }
        
        return String.valueOf(arr);
    }
    
    /**
     * 以星号遮盖字符串两边,中间保留
     * @param origin 原文
     * @param start 保留起始位置
     * @param end 保留终止位置
     * @return 遮盖后的字符串
     */
    public static String shadowEdge(String origin,int start,int end) {
        char[] arr=origin.toCharArray();
        final int len=arr.length;
        
        for(int i=0;i<start-1;i++) {
            arr[i]='*';
        }
        
        for(int i=end;i<len;i++) {
            arr[i]='*';
        }
        
        return String.valueOf(arr);
    }
}
复制代码

 

【运行结果】

ab******45
**cde123**

 

END

posted @   逆火狂飙  阅读(427)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2021-10-05 【Mybatis】LambdaQueryWrapper用法示例
2021-10-05 【oracle/语法】With语句的写法
2021-10-05 【oracle】同是选出每个城市最年长女性,not exits 方案和 分析函数rank方案的巨大差距
2021-10-05 【Java/加解密】不算加密的加密-base64加解密(使用Java8的Base64实现)
2019-10-05 [MyBatis]完整MyBatis CRUD工程
2019-10-05 [log4j]Error:The method getLogger(String) in the type Logger is not applicable for the arguments
2019-10-05 [java]将秒数转化为“天时分秒”的格式(转贴+修改)
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东
点击右上角即可分享
微信分享提示