JAVA优化char []到String转换

时间:2017-01-17 18:00:38

标签: java arrays string char

这是此Hackerrank Question

的解决方案
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转换?

1 个答案:

答案 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';
   }
}