java - 如何一次打印一个单词两个字母? - java

标签 java

输入的长度应该是偶数。问题是,在循环的第一次迭代中,它打印 Sc,但随后打印 ch 而不是 ho。我不知道如何实现这一跳跃。

public static void twoAtATime(String a) { // School
        int len = a.length();
        if(len%2 == 0) {
            for(int i = 0; i <a.length()/2; i++) {
                    System.out.print(a.substring(i,i+1) + a.substring(i+1,i+2));
                    System.out.println();
            }
        }

输出应该是这样的:

Sc
ho
ol

最佳答案

修复它:

  1. 增加i通过2 .
  2. 迭代直到 i < len .

你可以改进它:

  1. 调用substring一次两个字符。
  2. 使用println带参数。
  3. 递增i一次-i += 2 .

改进后:

public static void twoAtATime(String s) {
    int len = s.length();
    if (len % 2 == 0) {
        for (int i = 0; i < len; ) {
            System.out.println(s.substring(i, i += 2));
        }
    }
}

关于java - 如何一次打印一个单词两个字母? - java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58087752/

相关文章:

java - 我应该使用哪些组件来构建 Java WYSIWYG HTML 编辑器

java - 字符串插入时出现循环问题

java - 如何通过投票订购特定日期的餐厅

具有值的变量的 java.lang.NullPointerException (Eclipse)

java - Jboss 中的加载器约束冲突

java - java中的MD5校验和问题

java - 自定义 View 组中的 subview 不遵循边界

Java:这怎么会返回空值?

java - 如何通过 HibernateTemplate 更新数据库中的特定字段

java - 为什么一个类中有多个类构造函数以及它们的可能用途是什么?