Почему я не получаю правильный вывод в вопросах печати четных и нечетных индексных символов отдельно?

#java

#java

Вопрос:

введите описание ссылки здесь

Это ссылка на вопрос. Я написал этот код на Java, но я не получаю правильный вывод.Почему?

 Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        for(int i=0; i<n; i  )
        {
            String name = sc.nextLine();
            String even="";
            String odd ="";
            for(int j=0; j<name.length(); j  )
            {
                if(j%2==0)
                    even=even String.valueOf(name.charAt(j));
                else
                    odd=odd String.valueOf(name.charAt(j));
            }
            System.out.println(even " " odd);
  

Это ошибка, которую я получаю.

 Input (stdin)
    2
    Hacker
    Rank

Your Output (stdout)

    // a blank space here.
    Hce akr

Expected Output

    Hce akr
    Rn ak

    
  

Комментарии:

1. Прочитайте эту статью для получения советов по отладке вашего кода.

Ответ №1:

Вы int n = sc.nextInt(); потребляете целое число, которое вводится (2), но все еще есть новая строка.

Когда ваш цикл выполняется в первый раз, и вы вызываете String name = sc.nextLine(); , он будет использовать оставшуюся новую строку (и ничего больше). Следовательно, ваша пустая строка.

Чтобы пройти мимо этого, обязательно прочитайте новую строку после прочтения n

Кроме того, последняя запись не отображается, потому что вам, вероятно, понадобится завершающая новая строка (одна после «Ранга» в вашем вводе)

Ответ №2:

ваш код верен, но проблема заключается в том, что вы вводите данные. если вы принимаете это как вход 2 хакерского ранга, то ваш исключенный вывод никогда не будет таким, как вы упомянули в вашем вопросе. Теперь я вкратце расскажу вам, в чем проблема:———

int n = sc.nextInt(); здесь вы вводите целое число 2, но удаляете только одну переменную строкового типа. вы должны объявить переменную 2string typr, если вы выбираете 2. в противном случае будет обработан только 1 tring .

Ранг хакера, при котором вы принимаете 2 строковые переменные bt в соответствии с кодом ur, только хакер будет скомпилирован и выдаст результат. вы объявляете 2 строковые переменные.