文字列を分割しようとしています192.168.1.2:6060;rport;branch=z9hG4bKNskFdtGO4"
。
port:ip
最初のセミコロンの前と、等号の後の枝番号を抽出したかったのです。
私が試したコードは
temp = in.next();
System.out.println(temp.contains(";"));
System.out.println(temp.contains("="));
System.out.println("Temp: " + temp + " ");
sipName = temp.substring(0, temp.charAt(';'));
branch = temp.substring(temp.charAt('='));
それらの文字が少なくとも文字列で見つかったかどうかを示すために、printlns を追加しました。
コードを実行すると、行に StringIndexOutOfBoundsError が表示されますsipName = temp.substring(0, temp.charAt(';'));
私のコンソール出力は次のとおりです。
true
true
Temp: 192.168.1.2:6060;rport;branch=z9hG4bKb8NGxwdoR
Exception in thread "Thread-1" java.lang.StringIndexOutOfBoundsException: String index out of range: 59
...
しようとしても失敗するSystem.out.println(temp.charAt(';'));
なぜこれが起こっているのかわかりません。誰でも説明できますか?私は困惑しています。