首页 > 解决方案 > 为什么我在单独打印偶数和奇数索引字符的问题中没有得到正确的输出?

问题描述

在此处输入链接描述

这是问题的链接。我已经用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

    

标签: java

解决方案


int n = sc.nextInt();使用输入的整数 (2),但仍然有一个换行符。

当您的循环第一次通过并调用String name = sc.nextLine();时,它将消耗剩余的换行符(仅此而已)。因此,您的空行。

要克服这一点,请确保在阅读后阅读新行n

此外,没有显示最后一个条目,因为您可能需要一个尾随换行符(输入中的“排名”之后的一个)


推荐阅读