Как я могу напечатать слово двумя буквами за раз?- Ява - PullRequest
0 голосов
/ 24 сентября 2019

Вход должен иметь четную длину.Проблема в том, что на первой итерации цикла он печатает 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 Ответ

2 голосов
/ 24 сентября 2019

Чтобы исправить это:

  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));
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...