0

私は数時間理解できなかったこの本当に奇妙な問題を抱えています。基本的に私はこれを分割しようとしていますgetInterfaceBounds-client.ry、私がしていることはこれです

final String className = line.split(".")[0]; 

arrayindexoutofbounds例外が発生しています。理由がまったくわかりませんよね?

Exception in thread "Thread-3" java.lang.ArrayIndexOutOfBoundsException: 0

4

4 に答える 4

3

split正規表現を使用します。正規表現.では任意の文字を意味するため、エスケープする必要があります。

試す:

final String className = line.split("\\.")[0];

http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#sumを参照してください

于 2013-01-19T05:32:53.763 に答える
1

必要な変更は次のとおりです。

final String className = line.split("\\.")[0]; 

詳細については、この例を確認してください。

  String s="getInterfaceBounds-client.ry";
  String[] arr = s.split("\\.");
  for(String str : arr)
  {
    System.out.println(str);
  }

イデオネリンク。_

于 2013-01-19T05:28:08.313 に答える
0

split()分割から値以上のものを取得する可能性があるため、配列変数を使用します。配列を使用すると、たとえば次のように値にアクセスする際の混乱を避けることができます。

String line = "getInterfaceBounds-client.ry.test";
String test[] = line.split("[.]");
System.out.println(test[0]+test[1]+test[2]);
于 2013-01-19T05:33:03.623 に答える
0

代わりにこれを使用すると、機能します。私はそれをテストしました。

String line = "getInterfaceBounds-client.ry";

String className = line.split("[.]")[0]; 

System.out.println(className);

。任意の文字を表す正規表現の特殊文字です。

正規表現のさまざまな特殊文字について詳しくは、 http ://www.fon.hum.uva.nl/praat/manual/Regular_expressions_1__Special_characters.htmlをご覧ください。

于 2013-01-19T05:28:21.720 に答える