Scanner 对象

Scanner 对象

1.Scanner 对象

 

 

  1. 基础的语法

    Scanner s = new Scanner(System.in);

     

  1. 通过Scanner 类的next() 与nextLine() 方法获取输入的字符串,在读取前我们一般需要使用hasNext() 与 hasNextLine() 判断是否还有输入的数据

next() 和 nextLine()区别

  1. next():

  • 一定要读到有效字符后才可以结束输入

  • 对输入有效字符之后遇到的空白,next() 方法会自动将其去掉

  • 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符

  • next() 不能得到带有空格的字符串

  1. nextLine():

  • 以enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所以字符

  • 空白可以获得

 

列子

  //创建一个扫描器对象,用于接收键盘数据
       Scanner scanner = new Scanner(System.in);
?
       System.out.println("使用next方式接受:");
?
?
       //判读用户有没有输入字符串
       if (scanner.hasNext()){
           String str = scanner.next();//程序会等待输入完毕
           //使用next方式接受
           System.out.println("输出内容为:"+str);
       //凡是属于Io 流的类如果不会关闭会一直占用资源,要养成好的习惯用完就关掉
  scanner.close();
?

输入hello world, next() ,只会输出 hello

 

 Scanner 对象

 

 

 Scanner scanner = new Scanner(System.in);
       //创建一个扫描对象,用键盘来接受
       System.out.println("使用next接受:");
       //输出
?
       if(scanner.hasNextLine()){
           //如果用户输入字符串就进来
?
            String str = scanner.nextLine();
                //字符长定义用str ,来存储数据输入完毕
           System.out.println("输出内容:"+str);
              //输出字符串的内容,//注意这里字符串的内容要用拼接符+ str 来表示
           scanner.close();
           //关闭流程,否则会浪费资源

输入 hello world ,nextLine() ,则会全部输出

Scanner 对象

 

 

由此可见next() 和nextLine区别所在

例子三:不用判断语句来写Scanner,最基础的

//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
?
System.out.println("使用next方式接受:");
?
String str = scanner.next();//程序会等待输入完毕
//使用next方式接受
System.out.println("输出内容为:"+str);
//凡是属于Io 流的类如果不会关闭会一直占用资源,要养成好的习惯用完就关掉
scanner.close();
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
?
System.out.println("使用next方式接受:");
?
String str = scanner.nextLine();//程序会等待输入完毕
//使用next方式接受
System.out.println("输出内容为:"+str);
//凡是属于Io 流的类如果不会关闭会一直占用资源,要养成好的习惯用完就关掉
scanner.close();

//这两种的输出结果跟上面2种当然也是一样的


其他nextint() 和nextLine()用法也是一样的

Scanner scanner = new Scanner(System.in);
int i =0;
float f =0.0f;
?
System.out.println("请输入整数");
?
if (scanner.hasNextInt()){
   //如果输入的是整数就进来
   i = scanner.nextInt();
   System.out.println("整数数据"+i);
?
}else {
?
   System.out.println("输入的不是整数!");
?
}
if (scanner.hasNextFloat()){
   f = scanner.nextFloat();
   System.out.println("小数据"+f);
?
}else {zhenshu
?
   System.out.println("输入的不是小数!");
?
}
scanner.close();

例题

//我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果;
Scanner scanner = new Scanner(System.in);
?
double sum =0;
//总和
int num = 0;
//计算输入多上个数字
while(scanner.hasNextDouble()){
   //判断是否输入,并在里面对每一次进行求和统计
   double  x = scanner.nextDouble();
   //定义x,存储,输入的值是double类型
   num = num +1;
   sum = sum + x;
?
?
}
System.out.println(num + "个数的和:"+ sum);
System.out.println(num + "平均数为:"+ (sum / num));
?
scanner.close();

 

 Scanner 对象

 

Scanner 对象

上一篇:工具进阶:如何利用 MAT 找到问题发生的根本原因


下一篇:Ant Design Vue 2.x 递归Menu