Scanner对象

Scanner对象
通过Scanner类来获取用户的输入。

使用需导入 java.util.Scanner 包。

基本语法:

Scanner s = new Scanner(System.in);
next()
package Scanner;
import java.util.Scanner;//导入包
public class Demon1 {
public static void main(String[] args) {
//变量类型 变量名 创建一个扫描器对象↓
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方法接收");
//判断语句 判断是否有输入↓
if(scanner.hasNext()){
//当↑为真,则有输入,使用scanner.next()赋值给str
String str = scanner.next();
System.out.println("输入内容为:"+ str);
//输出用户输入值
}
scanner.close();//关闭scanner
}
}
读取到有效字符后才可以结束输入
对有效字符前的空白,会自动删除
只有输入有效字符后才能将后面输入的空白作为分隔或结束符
next()不能得到带有空格的字符串。
nextLine()
package Scanner;
import java.util.Scanner;
public class Demon2 {
public static void main(String[] args) {
//变量类型 变量名 创建一个扫描器对象↓
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方法接收");
//判断语句 判断是否有输入↓
if(scanner.hasNextLine()){
//当↑为真,则有输入,使用scanner.next()赋值给str
String str = scanner.nextLine();
System.out.println("输入内容为:"+ str);
//输出用户输入值
}
scanner.close();//关闭scanner
}
}
以Enter为结束符,即返回回车之前的所有字符(包括空格)
nextLine()可以获得空格
故平时多使用nextLine()

上面两个程序,删除if判断语句依然能够使用。程序会在

String str = scanner.nextLine();
等待用户输入。

Scanner scanner = new Scanner(System.in);//创建scanner
String str = scanner.nextLine();//获得输入值
scanner.close();//关闭scanner
以上三步可以说是固定形式

Scanner的进阶用法
nextInt() nextFloat() .....
package Scanner;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

import java.sql.SQLOutput;
import java.util.Scanner;
public class Demon3 {
public static void main(String[] args) {

int i =0;
float f = 0.0f;

Scanner scanner = new Scanner(System.in);
    System.out.println("请输入整数");
    if(scanner.hasNextInt())//判断是否有整数输入
    {
        i = scanner.nextInt();
        System.out.println("你输入的数字为:"+ i);
    }
    else {
        System.out.println("你tm输入的不是整数");
    }
scanner.close();

}
}
判断是否为小数同理。

求平均值的程序
在用户输入非数字后计算出平均值。

import java.sql.SQLOutput;
import java.util.Scanner;

public class Demon4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

    int x =0;//数字个数
    double sum = 0.0;//数字和
    double u = 0.0;//新输入数字
    System.out.println("请输入数字");
    while (scanner.hasNextDouble()){
        System.out.println("请继续输入数字...");
        u = scanner.nextDouble();//获得输入数字
        sum = sum + u;//计算合
        x++; //统计输入了几个数字

    }
    System.out.println(x+"个数的总和为:"+sum);
    System.out.println(x+"个数的平均值为:"+(sum/x));
    scanner.close();
}

}

posted @ 2020-11-08 12:54  白纸黑字。  阅读(136)  评论(0编辑  收藏  举报