java - 如何将字符串分成两个字符的子串

标签 java string

我正在尝试将字符串拆分为两个字符的子字符串,例如对于输入:“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/

相关文章:

java - 将数字 append 到 url 字符串末尾

java - Lucene 和外部数据库

java - Android/Java JDBC MySQL - 获取行 - 有效算法

java - 用DSL KStream向KTable转换的Kafka墓碑

Java:对象与条件的关系( hibernate )

c++ - 通过附加和克隆子字符串构建字符串的算法

string - 如何确定R中字符串是否以换行符(EOL)结尾?

java - 获取名称为 DAO 类的 Bean 创建异常

java - 方法如何接收字符串作为输入并给出 int 作为输出

c - 使用带可变参数的函数打印字符串 (va_list)