2012-10-15 8 views
5

Possible Duplicate:
The split() method in Java does not work on a dot (.)Javaのフルストップから分割

私はjavaを初めて使っています。私は文字列を "。"から分割したい(ドット)を取得し、それらの名前を1つずつ取得します。しかし、このプログラムはエラーを与える:"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0" は正規表現で私に

String input1 = "van.bus.car"; 

System.out.println(input.split(".")[0]+""); 

System.out.println(input.split(".")[1]+""); 

System.out.println(input.split(".")[2]+""); 
+1

スプリットコールから返された文字列配列を保持しておき、配列にループ内の値を読み込んで配列に存在しない値を取得しようとしていないことを確認する価値があります –

答えて

10

を助けてください、Dot(.)everythingと一致する特殊なメタ文字です。

String.splitはRegexで動作するので、dotと一致させるには、バックスラッシュでエスケープする必要があります。

System.out.println(input.split("\\.")[0]+""); 

以下のサイトを参照してください、正規表現について詳しく知ることができます -

5

引数splitには正規表現であり、従ってフルストップ/ドット/ .には特別な意味があります。は任意の文字に一致します。あなたのスプリットで、文字通り、それを使用するには、それをエスケープする必要があります:

String[] splits = input1.split("\\."); 

あなたの入力文字列の長さ3の配列を与える必要があること。

正規表現と特殊文字の詳細については、docs for Patternを参照してください。