gpt4 book ai didi

java - 替换字符串第 n 个字符但忽略空格的最佳方法?

转载 作者:行者123 更新时间:2023-12-01 19:47:28 25 4
gpt4 key购买 nike

我试图找出替换字符串第 n 个字符的最佳方法,但在循环时忽略空格。例如,如果我要将字符串 mary had a little lady 的每 5 个字符更改为 z,它应该返回 mary zad azlittze lazb

我认为的一种方法是删除所有空格 (maryhadalittlelamb),然后将所有第 5 个字符更改为 z (maryzadazlittzelazb) 并然后引用原始字符串,找到""的索引并将其插入到maryzadazlittzelazb

但这看起来不太优雅,我确信有更好的方法可以做到这一点,有人可以建议吗?

谢谢!

最佳答案

我会使用String.toCharArray() ,然后使用常规 for 循环进行迭代,并使用 Character.isWhitespace(char) 测试每个字符是否不是空格。 。如果不是,请增加第二个计数器(此处名为 p)并检查该值是否能被 5 整除。如果是这样,请将其设置为 z。最后,根据编辑的char[]创建一个新的String。就像,

String str = "mary had a little lamb";
char[] arr = str.toCharArray();
for (int i = 0, p = 0; i < arr.length; i++) {
if (!Character.isWhitespace(arr[i]) && ++p % 5 == 0) {
arr[i] = 'z';
}
}
System.out.println(new String(arr));

我明白(正如我在评论中提到的)

mary zad a lzttle zamb

另外,因为可能不是很清楚,上面复杂的if相当于

if (!Character.isWhitespace(arr[i])) {
p++;
if (p % 5 == 0) {
arr[i] = 'z';
}
}

关于java - 替换字符串第 n 个字符但忽略空格的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52675765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com