String b = new String(in.nextLine());
char[] bCharArray = b.toCharArray();
for (int i = 0; i < n - 2; i++) {
if (b.substring(i, i + 3).matches("010")) {
bCharArray[i + 2] = '1';
b = new String(bCharArray);
counter++;
}
}
现在在for循环部分中,每次创建String b的新实例时。有没有更好的方法来实现优化的char []到String转换?
答案 0 :(得分:2)
不是在每次迭代中创建一个新的String,而是如何处理原始的char数组,并且只有在你完成修改字符后才能将它复制到一个字符串中(如果那是你的话)要)。
以下是替代代码:
String b = new String(in.nextLine());
char[] bCharArray = b.toCharArray();
for (int i = 0; i < n - 2; i++) {
if(bCharArray[i] == '0' && bCharArray[i+1] == '1' && bCharArray[i+2] == '0')
{
bCharArray[i+2] = '1';
}
}