笔试算法题中,有时候是要自己处理输入,比如从键盘中接收一个数,整理了一些常用的,真正笔试之前可以看一看。
输入
循环输入:
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()){
String s = sc.nextLine();
}
sc.close();
while循环中的循环条件是判断是否有下一个输入,除了hasNextLine,还有:
sc.hasNext() 检查是否有非空字符
sc.hasNextInt()
sc.hasNextDouble()
sc.hasNextLong()
sc.hasNextLine()
循环体String s = sc.nextLine();
表示吸取输入台输入的字符,保存到s中,除此之外,还有:
整数: int n = sc.nextInt();
浮点数: double t = sc.nextDouble();
读一整行: String s = sc.nextLine(); //包含空格
String s = sc.next(); //遇到空格停止
采用has xxxx的话,后面也要用next xxxx。比如前面用hasNextLine,那么后面要用 nextLine 来处理输入。
例如:
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
int n = in.nextInt();
//处理代码略
}
如果处理
7 15 9 5
这行数据,当处理完5后,没有非空字符了,hasNext返回了false,但是在linux系统中,5后面还有一个换行符\n,0X0A,所以 hasNextLine会返回true。
输入数字,以符号间隔
示例:20,3
Scanner in = new Scanner(System.in);
String[] line = in.nextLine().split(",");
int m = Integer.valueOf(line[0]);
int k = Integer.valueOf(line[1]);
输出
System.out.print();
System.out.println();
System.out.format();
System.out.printf()