目录
输入输出
Scanner sc = new Scanner(System.in);
String s = sc.next();//字符串
double t = sc.nextDouble(); //浮点数
String s = sc.nextLine();//一行
判断是否有下一个输入,用sc.hasNext()或sc.hasNextInt()或sc.hasNextDouble()或sc.hasNextLine()
//循环输入整数
while(in.hasNextInt()){
int n = sc.nextInt();
}
//循环输入字符
while(in.hasNext()){
}
注意,如果使用nextInt()或next()之后,要用nextLine(),需手动调用.nextLine()吸收掉回车符或空格。但是如果不是交叉使用,比如连续使用next()或next()是可以自动吸收掉空格或回车符的。
nextInt() 只读取整数类型数据,读取完输入后把光标放在同一行该数据的后面。
next() 只读取到空格,不能读取被空格分开的两个单词,读取完后把光标位置同上。
nextLine() 读取整行的数据包括单词间的空格和结束的回车符,读取结束后把光标放在下一行开头。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
input:
2 3
1 2 3
4 5 6
avd
dvd
abcdf fsfd
output:
123
456
avd
dvd
abcdf fsfd
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
List<List<Integer>> lists = new ArrayList<>();
for(int i=0; i<n; i++){
List<Integer> list = new ArrayList<>();
for(int j=0; j<m; j++){
list.add(sc.nextInt());
}
lists.add(list);
}
String s1 = sc.next();
char[] c = sc.next().toCharArray();
sc.nextLine();//手动 调用.nextLine()越过“/n“
String s2 = sc.nextLine();
//output
for(List<Integer> list:lists){
for(Integer a: list){
System.out.print(a);
}
System.out.println();
}
System.out.println(s1);
System.out.println(c);
System.out.println(s2);
}
}
循环中hasNext()无法结束, 可以在循环中加入break条件,也可以手动设置终止符
//例:以“0”作为终止符
Scanner in =