以下是我要解决的问题:
任务 给定一个长度为N且从0到N-1索引的字符串S,将其偶数索引和奇数索引字符作为空格分隔的字符串打印在一行上。
输入格式
第一行包含一个整数T(测试用例数)。 T后续行的每一行i包含一个字符串S。
示例输入
2
黑客
排名
示例输出
Hce akr
Rn ak
我的代码问题是第一行(Hce akr)正在打印,但下一行不是。我读了一些类似的问题,并在循环开始之前放入了一个nextLine()(输入字符串)但是只显示了第二个输出(Rn ak)。我不明白我哪里出错了。
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T=sc.nextInt();
if((T>=1)&&(T<=10))
{
String s[]=new String[T];
int i;
for(i=0;i<T;i++)
{
s[i]=sc.nextLine();
}
int flag=0;
for(i=1;i<T;i++)
{
for(int j=0;j<s[i].length();j=j+2)
{
System.out.print(s[i].charAt(j));
if((j+2)>(s[i].length()-1))
{
System.out.print(" ");
j=-1;
flag++;
}
if(flag==2)
break;
}
System.out.println();
}
}
}
答案 0 :(得分:0)
这是因为你的
for(i=1;i<T;i++)
从
开始for(i=0;i<T;i++)
答案 1 :(得分:0)
由于您的程序逻辑,它只能读取您指定为输入的行数。因为你在开头指定2作为输入,这就是为什么它只要求你再输入一行。因此它甚至没有将Rank作为输入,这就是为什么你没有看到它。如果你将你的第一个输入改为3,你将能够进入并看到另外两行。