我在将空字符串连接到具有某些值的字符串时收到错误

时间:2017-09-07 21:26:14

标签: java string

对于以下某个代码段,我遇到了运行时异常。

public class Demo {

   public static void main(String[] args) {
          String org="This is the new shit.This is the new.";
          String search="is";
          String sub="was";
          int i;
          String result="";
          do{
                 i=org.indexOf(search);
                 if(i==-1)
                       break;
                 result=result+org.substring(0,i);
                 result=result+sub;
                 result=result+org.substring(i+search.length());
                 org=result;
          }while(i!=-1);
          System.out.println(org);
   }

}

抛出的异常如下:

at java.util.Arrays.copyOfRange(Unknown Source)
   at java.lang.String.<init>(Unknown Source)
   at java.lang.StringBuilder.toString(Unknown Source)
   at strings.Demo.main(Demo.java:16)

任何人都可以告诉为什么会抛出这个异常。

1 个答案:

答案 0 :(得分:1)

您的循环永远不会结束,因为您没有将结果重置为“”

result = "";

在循环结束时将执行技巧