2017-09-07 5 views
-3

次のスニペットのうち、実行時例外が発生します。次のように投げnull文字列をいくつかの値を持つ文字列に連結する際にエラーが発生します

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) 

誰でも伝えることができます。あなたは、ループの終わりに

result = ""; 

「」になりリセットされませんので

+2

を行います[それは私がコードを実行するときに何が起こるかではありません]( https://ideone.com/GIchoX)。 –

+0

@Andy 5秒後に期限を迎えたので、彼のコードは終了せず、 "OutOfMemoryError"が発生したとき例外をスローします。 – Tyler

+0

@SHREY Javaプログラムのデバッグ方法を学びます。 –

答えて

1

あなたのループは決して終わらないトリック

関連する問題