String.split()はNullPointerExceptionを生成します。String.split()はNullPointerExceptionを生成します。
BufferedReader brs = new BufferedReader(new InputStreamReader(System.in));
String s1;
String s2[];
s1 = brs.readLine();
s2 = s1.split(" ");
String.split()はNullPointerExceptionを生成します。String.split()はNullPointerExceptionを生成します。
BufferedReader brs = new BufferedReader(new InputStreamReader(System.in));
String s1;
String s2[];
s1 = brs.readLine();
s2 = s1.split(" ");
s1はnull
、
s1 = brs.readLine();
if(s1!=null)
s2 = s1.split(" ");
あなたはbrs.readLine()
から来ているもの確認しました可能性があります。それはnull
値が由来するところです。おそらくファイルが空である:http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html#readLine%28%29
この行がnullポインタ
s2 = s1.split(" ");
をスローした場合、あなたがEDITスプリット/ EDIT
注呼び出す前に、その後、s1がnullのため
チェックnullでなければなりません: をBufferedReader.readLine(); 戻り:の端場合 任意の行終端文字を含まない行の内容を含む文字列、またはヌルストリームの終わりに
はBufferedReader.readLineを(達した場合)はnullを返しますストリームに遭遇する。 javadocを参照してください。 s1を分割する前に、ヌルチェックを行う必要があります。
s1がnullの可能性があります。これを試して。
if (s1 != null && !s1.trim().equals(""))
s2 = s1.split(" ");
あなたのBufferedReaderは完全に空ですので、readline()はnullを返します。入力ストリームが空である可能性があります。
'readLine()'がnullを返すためです。 – Stephan
@Stephanそれはnullではありません。 –
あなたのコードとスローされた例外から、s1がnullであることは明らかです。次の結論に至ります:brs.readLine(); nullを返します。それに応じてメソッドを呼び出す前にnullであるかどうかを調べる必要があります。また、次回は何がうまくいかなかったかを確認できるようにスタックトレースを提供します。 –