java中控制台输入二维数组(Scanner类总结)

由于牛客和LeetCode上的题目不用自己写输入,但实际笔试中都需要从输入开始写,遇到需要从控制台输入二维数组的情况,故对java中的Scanner类作整理和总结。

通过 Scanner 类能获取用户的输入。

Scanner 类的 next() 方法:

    1、一定要读取到有效字符后才可以结束输入。 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。 next() 不能得到带有空格的字符串。

Scanner 类的 nextLine() 方法:

    1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。(因此可以被用来跳过回车符号) 2、可以获得空白。
import java.util.Scanner;
import java.util.Stack;
public class solution{
	public static void main(String[] args){
		System.out.println("二维数组的列数:");
		Scanner scan=new Scanner(System.in);
		int r=scan.nextInt();
		int c=scan.nextInt();
		int[][]matrix=new int[r][c];
		scan.nextLine();//用来跳过行列后的回车符
		for(int i=0;i<r;i++){
			for(int j=0;j<c;j++){
				matrix[i][j]=scan.nextInt();
				System.out.print(matrix[i][j]+",");
			}
			System.out.println("");
		}
    }
}

输入:

4 5
1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0

输出:

1,0,1,0,0,
1,0,1,1,1,
1,1,1,1,1,
1,0,0,1,0,

Scanner 类的 nextInt() 方法:

    1.返回值是int类型的,以有效数字后的空格作为两个输入的数据的间隔 2.next() 和nextLine()返回类型都是String

Scanner 类的nextFloat()方法:返回值是float类型的,以有效数字后的空格作为两个输入的数据的间隔

经验分享 程序员 微信小程序 职场和发展