我正在尝试将字符串拆分为两个字符的子字符串,例如对于输入:“ABCDE”我想获取子字符串“AB”“BC”“CD”“DE”。
我尝试过这个:
String route = "ABCDE";
int i = 0;
while(i < route.length()) {
String sub = route.substring(i,i+2);
System.out.println(sub);
i++;
}
但是索引 (i) 在最后一次迭代中超出范围并导致错误。 有什么办法可以做到这一点而不让索引(i)超出范围吗?
最佳答案
您需要更改循环条件。
while(i < route.length()-1)
在你的代码中,我一直到(length-1),然后在 substring(i,i+2) 函数中,你给出结束索引 i+2。它高于字符串的最大索引。
此外,据我所知,在循环条件下调用库函数并不被认为是一个好的做法。
- 在每次迭代中您都会调用此函数,这非常耗时。
- 控制在每次迭代中转到该子例程。
一个好的替代方案是将长度存储在变量中并在条件中使用它。
int temp = route.length()-1;
while(i<temp){
关于java - 如何将字符串分成两个字符的子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38427581/