ACM模式下输入输出写法 Java版本

1. 单个输入与单行输入

输入一个数,或者一个字符串,或者一行数中间用空格隔开:

  • 输入一个数
import java.util.Scanner;
Scanner sc = new Scanner(System.in);

int i = sc.nextInt();

byte/ double/ float/ int/ long/ short 类型的类似。ACM模式下输入输出写法 Java版本_第1张图片

  • 输入一个字符串
    next()、nextLine()都可以:
    不过要注意 
    next()不会吸取字符前/后的空格/Tab键,只吸取字符,开始吸取字符(字符前后不算)直到遇到空格/Tab键/回车截止吸取;
    nextLine()吸取字符前后的空格/Tab键,回车键截止。
String str1 = sc.next(); //接收第1个值
String str2 = sc.nextLine(); //接收的是一整行

对于相同的输入: asdad sad ka
str1:asdad
str2: asdad sad ka

ACM模式下输入输出写法 Java版本_第2张图片

  • 输入一个char类型字符
    Scanner本身并不支持获取char类型的数据,但是可以通过charAt()方法截取string的首位来获取char类型的数据。
char c = scanner.next().charAt(0);
  • 输入一行数据or字符串,中间用空格隔开
    对于不同数据类型的方法都类似,连续用几次next()或者nextInt()函数:
 String a = sc.next();// 接收第1个值
 String b = sc.next();// 接收第2个值
 String c = sc.next();// 接收第3个值

输入:anny tony bani
输出:a:anny b:tony c:bani

2. 多行输入(最常见)

  • 给出了矩阵的行列数,用for遍历

第一行是两个用空格隔开的正整数n与m,n为行数,m为列数。
接下来的n行,每行是m个用空格隔开的正整数。如:
2 3
5 6 8
1 6 9
想要用二维数组接收:

//用二维数组接收:
int m = sc.nextInt();
int n = sc.nextInt();
int[][] nums = new int[m][n];
for (int i = 0; i < m; i++) {
   
    for (int j = 0; j < n; j++) {
   
        nums[i][j] = sc.nextInt();
    }
}

//验证接收是否正确:
for (int i = 0; i < m; i++) {
   
  

你可能感兴趣的:(java,java)