为什么我在分别打印偶数和奇数索引字符的问题上没有得到正确的输出

  • 本文关键字:问题 输出 字符 打印 索引 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

您的int n = sc.nextInt();消耗了输入(2(的整数,但仍有一个换行符。

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

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

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

您的代码是正确的,但问题在于您的输入。如果您将此作为输入2.黑客等级那么你的预期产出永远不会像你在问题中提到的那样。现在我简单地告诉你问题出在哪里:---------

int n=sc.nextInt((;在这里,你接受整数输入2,但你只延迟了一个字符串类型的变量。如果你选择2,你必须声明2string-typr变量。否则只能处理1个字符串。

黑客等级当你根据你的代码取2个字符串变量bt时,只有黑客会被编译并给出输出。u声明2字符串变量。

最新更新