Scanner用户交互
Scanner对象
引入语法:
Scanner scanner=new Scanner(System.in);(固定的)
小写scanner为定义的名称
scanner.close();//需要关闭释放资源(固定的)
-
一定要读取到有效字符才能结束
-
输入有效字符之前的空白(空格)自动去掉
-
输入有效字符之后的空格作为结束符,之后的内容不再接受
-
next();方法不能接受空格字符
hasNext();用来判断是否为空,是否符合我们所需要的。
nextLine();方法
-
以回车作为结束符,也就是说nextLine();方法返回的是输入回车之前的所有字符
-
可以获取空格
以上两种方法配合数据类型使用改变
例如想要获得的是整型数据
hasNextLine();同样用于判断输入的数据类型,是否为空等等
扩展:
包含了许多判断方法,hasNextInt(); hasNextFloat(); hasNextByte(); hasNextLong();
字符串直接用hasNext();和hasNextLine(); 这些与if()配合使用用来限定用户输入的数据是否符合需求。
通常放在赋值语句之前配合if()或while()使用。
1 import java.util.Scanner; 2 public class hehe { 3 public static void main(String[] args) { 4 System.out.println("输入整型数据!"); 5 Scanner s=new Scanner(System.in); 6 if(s.hasNextInt()) //hasNextInt()非空为整数 7 int a=s.nextInt(); //nextInt();接受整型数据 8 System.out.println("得到的整型数据:"+a); 9 10 s.close(); //使用完毕就关闭,回收资源 11 } 12 } 13
字符串型数据直接使用next()或nextLine()即可
eg:
1 Scanner s=new Scanner(System.in); 2 string str=s.nextLine(); 3 s.close(); 4
朋友和酒,少年和诗,路和远方。