Scanner中常用方法
- nextInt():用于只读取整型数据,读入空白或空白字符,会跳过,以换行符'\n'结束输入,不包含换行符
- next():读取单个单词,以空格作为分隔符,换行符'\n'结束输入
- nextLine():读取整行,包括换行符
区分:
1.next()和nextLine()的区别:两个函数返回的都是是字符串,如果输入一行数据然后回车,next()会默认使用空格作为正则表达式来分割,而nextLine()直接读取输入对整行。
2.next()与nextInt()的区别:next()返回的是字符串,而nextInt会将字符串转成整数,其他类似,转换失败就抛出异常InputMismatchException。
如何退出while(scanner.hasnext()){ }的问题
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
System.out.println(sc.next());
}
System.out.println("out");
}
1.在windows上可以用ctl+z,就可以退出wile循环,
2.如果读取文件,因为文件后面都有EOF文件结束符,所以读取完文件以后会自动退出while循环
3. 输入非整数退出while(scanner.hasNextInt()){ }
4.加判断条件
//例:以“0”作为终止符
Scanner in = new Scanner(System.in);
while (!in.hasNext("0")) {
System.out.println(in.next());
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class InputTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 输入分割为一个一个输入(不知道个数)
// 按回车键输入空行结束
Scanner scanner = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<Integer>();
do{
String str = scanner.nextLine();
if(str.equals("")){
break;
}
list.add(Integer.valueOf(str));
}while(true);
//System.out.println(list);
System.out.println(Arrays.toString(list.toArray()));
}
}