Java在eclipse中类下多个函数使用Scanner从控制台读入的问题。
一次性向控制台输入多行数据,如果用一下代码读取:
public class Main {
public static void getNum() {
int[] num = new int[6];
Scanner in = new Scanner(System.in);//函数内构建新的Scanner类
for(int i = 0; i<3 && in.hasNext(); i++)
{
num[i] = in.nextInt();
}
System.out.println("this is num : ");
for(int k : num)
{
System.out.print(k + " ");
}
System.out.println("");
}
public static void main(String[] args) {
int[] temp = new int[6];
Scanner in = new Scanner(System.in);//主函数构建一个输入类
for(int i = 0; i<3 && in.hasNext(); i++)
{
temp[i] = in.nextInt();
}
getNum();
System.out.println("this is temp : ");
for(int k : temp)
{
System.out.print(k + " ");
}
}
}
则当输入
1 2 3 4 5 6
7 8 9
时,则输出
this is num :
7 8 9 0 0 0
this is temp :
1 2 3 0 0 0
显然当进入另一个函数后便无法读取当行内的剩余数据4 5 6需要另外一行重新输入并回车键入。
而 如果更改为
public class Main {
public static Scanner in = new Scanner(System.in);
public static void getNum() {
...
//Scanner in = new Scanner(System.in);
...
}
public static void main(String[] args) {
...
//Scanner in = new Scanner(System.in);
...
}
则输出为
this is num :
4 5 6 0 0 0
this is temp :
1 2 3 0 0 0
可以连续输入。