2012-01-06 33 views
3

String.split()はNullPointerExceptionを生成します。String.split()はNullPointerExceptionを生成します。

BufferedReader brs = new BufferedReader(new InputStreamReader(System.in)); 
String s1; 
String s2[]; 
s1 = brs.readLine(); 
s2 = s1.split(" "); 
+3

'readLine()'がnullを返すためです。 – Stephan

+0

@Stephanそれはnullではありません。 –

+2

あなたのコードとスローされた例外から、s1がnullであることは明らかです。次の結論に至ります:brs.readLine(); nullを返します。それに応じてメソッドを呼び出す前にnullであるかどうかを調べる必要があります。また、次回は何がうまくいかなかったかを確認できるようにスタックトレースを提供します。 –

答えて

11

s1はnull

s1 = brs.readLine(); 
if(s1!=null) 
s2 = s1.split(" "); 
1

この行がnullポインタ

s2 = s1.split(" "); 

をスローした場合、あなたがEDITスプリット/ EDIT

注呼び出す前に、その後、s1がnullのため

チェックnullでなければなりません: をBufferedReader.readLine(); 戻り:の端場合 任意の行終端文字を含まない行の内容を含む文字列、またはヌルストリームの終わりに

1

はBufferedReader.readLineを(達した場合)はnullを返しますストリームに遭遇する。 javadocを参照してください。 s1を分割する前に、ヌルチェックを行う必要があります。

2

s1がnullの可能性があります。これを試して。

if (s1 != null && !s1.trim().equals("")) 
    s2 = s1.split(" "); 
0

あなたのBufferedReaderは完全に空ですので、readline()はnullを返します。入力ストリームが空である可能性があります。

関連する問題