Scanner
hasNextInt():判断是否还有下一个输入项,其中Xxx可以是Int,Double等,如果需要判断是否包括下一个字符串,则可以省略Xxx
nextInt():获取下一个输入项,Xxx的含义和上个方法中的Xxx 相同,默认情况下
Scanner使用空格,回车作为分隔符
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
if(sc.hasNextInt()) {
int i = sc.nextInt();
System.out.println(i);
else{
System.out.println()
}}
}
bug问题:先用nextInt()接收int类型,接收int类型,在用nextLine()接收字符串的时候,会导致nextLine()直接把回车接收到了,nextLine不能继续接收字符串了
1)现获取一个数值后,在创建一个新的键盘录入对象获取字符串
2)把所有的数据都先按照字符串获取,然后要什么,你就对应转换什么
出现问题代码:
Scanner sc = new Scanner(System.in);
nextInt()是键盘录入整数的方法,当我们录入10的时候,其实在键盘上录入的是10和\r\n,nextInt()方法只获取10就结束了nextLine()是键盘录入字符串的方法,可以接收任意类型,通过\r\n,只要遇到就证明结束了
Scanner sc2 = new Scanner(System.in); //在创建一个新的键盘录入对象就可以解决
System.out.println(System.in);
String.out.println("");
String line = sc.nextLine();
int i = Integer.parseInt(line);
|
|