我正在尝试分解一个字符串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 以显示是否至少在字符串中找到了它们的字符。
当我运行代码时,我在行得到一个 StringIndexOutOfBoundsErrorsipName = 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(';'));
我不确定为什么会这样。有人能解释一下吗?我难住了。