今天总结一下用Scanner scanner = new Scanner(System.in)来接受参数,对于输入数组字符什么的,其实挺简单的,不用想什么分割换行,scanner.next()都帮你做了,直接上示例代码:
// 输入一个二维数组
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int size = scanner.nextInt();
int[][] problem = new int[2][size];
int temp = 0;
while (temp < size) {
problem[temp][0] = scanner.nextInt();
problem[temp][1] = scanner.nextInt();
temp++;
}
scanner.close();
System.out.println(Arrays.toString(problem[0]));
System.out.println(Arrays.toString(problem[1]));
}
// 输入一个字符串
// 要想呢中在输入框里回车后继续输入的,就像上面数组一样搞个循环
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// next会取空格前的
System.out.println(scan.next());
// nextLine会取全部,效果和BufferedReader一样
// 我更喜欢使用这个,方便
//System.out.println(scan.nextLine());
}
// 输入一个字符串
// 注意要抛异常
public static void main(String[] args) throws IOException {
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
String text = buffer.readLine();
System.out.println(text);
}
坑!!!如果你想读完数字再读字符串,在使用nextInt后紧接着使用nextLine,这个nextLine取空格,为了避免这个你可以多写一个nextLine来吃掉空格。
Scanner scanner =new Scanner(System.in);
int a = scanner.nextInt();
String str1 = scanner.nextLine();
System.out.println(a);
System.out.println(str1);
Scanner scanner =new Scanner(System.in);
int a = scanner.nextInt();
scanner.nextLine();
String str1 = scanner.nextLine();
System.out.println(a);
System.out.println(str1);