我正在尝试做 CCC 2019 的 J3 问题,我的代码大部分都有效,除了我的 for 循环导致 Scanner 在读取最后一行之前读取额外的一行。您可以在这里找到确切的问题:https ://dmoj.ca/problem/ccc19j3
预期输入:
4
+++===!!!!
777777......TTTTTTTTTTTT
(AABBC)
3.1415555
预期输出:
3 + 3 = 4 !
6 7 6 . 12 T
1 ( 2 A 2 B 1 C 1 )
1 3 1 . 1 1 1 4 1 1 4 5
我的输出:
3 + 3 = 4 !
6 7 6 . 12 T
1 ( 2 A 2 B 1 C 1 )
"Scanner waits for another line here"
"If I press enter, it then spits out the last line."
1 3 1 . 1 1 1 4 1 1 4 5
我似乎找不到问题,我尝试将 for 循环变成一个方法,然后为每个输入接受 Scanner 的四个不同输入(str0、str1 等),它仍然读取另一行。我在 sc.nextInt() 之后添加了 sc.nextLine() 以确保 Scanner 读取输入的下一行和 int 旁边的空格。我尝试省略最后一行输入,但它只是在最后一行之前读取另一行。所以这个问题似乎只限于最后一行而不是特定的输入。
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int counter = 1;
int n = sc.nextInt();
sc.nextLine();
for (int i = 0; i < n; i++){
String str = sc.nextLine();
for (int j = 0; j < str.length(); j++){
if (j != str.length() - 1 && str.charAt(j) == str.charAt(j+1)){
counter++;
}else{
System.out.print(counter + " " + str.charAt(j) + " ");
counter = 1;
}
}
System.out.println();
}
}
ITMISS
相关分类