先生,我正在尝试拆分数组[i]并将其存储到另一个数组中,但它无效。 这是我的代码
import java.util.Scanner;
public class prog1 {
public static void main (String [] args){
Scanner input = new Scanner(System.in);
int a = input.nextInt();
String arr1[] = new String [a];
for (int i=0;i<a;i++) {
arr1[i] = input.nextLine();
}
for (int i=0;i<a;i++) {
String temp[] = arr1[i].split("\\+");
System.out.println(temp.length);
System.out.println(temp[0]);
}
}
}
示例输入:
1
arka + xyz
预期输出:
2
arka
但是我得到的输出
1
<blank>
我是java的新手。你能不能帮我解决这个问题,并告诉我为什么我要面对这个问题。
答案 0 :(得分:3)
您只读int
nextInt()
并且在阅读for
循环中的其他行之前没有消耗第一行的结尾,因此for
的第一次迭代{1}}循环读取第一行的结尾,而不是第二行。
在开始for
循环之前,先点击第一行的结尾:
String chomp = input.nextLine();
for(int i=0;i<a;i++){
// Then read the following lines here.
答案 1 :(得分:2)
问题是当你输入一个数字后按Enter键时,它被读作下一行。
解决此问题的一种方法是添加input.next()
;在int a = input.nextInt();
之后,它将读取返回字符。我认为应用程序将按照您的预期运行。
或者你可以读这样的数字。
int a = Integer.parseInt(input.nextLine());