java - 我需要在java中打印给定字符串中的第1个和每5个字符

标签 java

我有一个长度超过 1000 个字符的字符串。在这个字符串中,我必须每隔 5 个字符打印第一个字符。

我尝试编写一个程序来从第 0 个字符迭代到最后一个字符,并有一个计数变量。

如果 count 等于 5。我正在打印字符,并且 count 初始化为 0。

private static String getMaskedToken(String token) {
    if (token == null)
        return null;
    char[] charArray = token.toCharArray();
    int length = token.length();
    StringBuilder sb = new StringBuilder();
    int count = 0;
    for (int i = 0; i < length; i++) {
        count++;
        if (i == 0 || i == length - 1) {
            sb.append(charArray[i]);
        } else if (count == 5) {
            sb.append(charArray[i]);
            count=0;
        } else if(count < 5 && i == length-1){
            sb.append(charArray[i]);
        }else {
            sb.append('*');
        }
    }
    return sb.toString();
}

Need to print last character if count is less than 5 of last iteration.

If String of length 9, "12345678" then actual output will be like 1***5**8

If String of length 9, "123456789abcd" then actual output will be like 1***5****a**d

最佳答案

    String output = "";
    for (int i = 0; i < str.length(); i++) {
        if (i == 0) {
            output += str.charAt(i);
            output += "***";
            output += str.charAt(4);
            i = 4;
        } else if ((i - 4) % 5 == 0) {
            output += str.charAt(i);
        } else if (i == str.length()-1) { 
            output += str.charAt(i);
        } else {
            output += "*";
        }
    }
    System.out.println(output);
}

这将为字符串“123456789abcd”打印 1***5****a**d。

关于java - 我需要在java中打印给定字符串中的第1个和每5个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56249876/

相关文章:

java regex matcher.replaceAll 与组

java - 将数组减半,填充它,然后重新减半

java - 哪个 CPU 使用率反射(reflect)了真实情况?

可选参数

java - 为什么HashMap的get()在Java中会同时比较hash值和key?

java - Android 在随机位置以随机大小绘制随机圆圈

java:wav 文件无法播放,而其他文件则播放

java - 如何从 Java 应用程序监听 Windows 事件?

java - 从 ArrayList 元素复制数组

java - 运行简单的 twitter 情绪分析代码时获取不存在的 jar 和 java.lang.ClassNotFoundException