Java用户交互Scanner
Scanner对象
- 可以通过java.util.Scanner提供的Scanner类来获取用户的输入,实现程序与人的交互
- 基本语法:Scanner scanner =new Scanner(System.in);
- 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取之前可以用hasNext()和hasNextLine()判断是否还有输入的数据
package process;
import java.util.Scanner;
public class Scanner01 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入信息:");
if(scanner.hasNext()){
String str=scanner.next();
System.out.println("输入的信息为:"+str);
}
scanner.close();
}
}
请输入信息:
学习Java好快乐 呀呀呀!
输入的信息为:学习Java好快乐
Process finished with exit code 0
package process;
import java.util.Scanner;
public class Scanner02 {
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
System.out.println("请输入信息:");
if(scanner.hasNextLine()){
String str=scanner.nextLine();
System.out.println("输入信息为:"+str);
}
scanner.close();
}
}
请输入信息:
学习Java好快乐 呀呀呀!
输入信息为:学习Java好快乐 呀呀呀!
Process finished with exit code 0
next()和nextLine()比较
- next()一定需要读取到有效字符后才可以结束输入
- next()将有效字符后面输入的空格作为结束符
- next()不能得到带有空格符的字符串(空格后面的不能输出)
- nextLine()以Enter为结束符,可以获得空白
拓展练习
package process;
import java.util.Scanner;
public class Scanner03 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入信息:");
String str=scanner.nextLine();
System.out.println("输入的信息为:"+str);
scanner.close();
}
}
请输入信息:
学习Java好快乐 呀呀呀!
输入的信息为:学习Java好快乐 呀呀呀!
Process finished with exit code 0
package process;
import java.util.Scanner;
public class Scanner04 {
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("输入的数据不为整型!");
}
if(scanner.hasNextFloat()){
f=scanner.nextFloat();
System.out.println("小数:"+f);
}else {
System.out.println("输入的数据不为小数!");
}
}
}
package process;
import java.util.Scanner;
public class Scanner05 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
double sum=0;
int i=0;
System.out.println("请输入数据:");
while (scanner.hasNextDouble()){
double x=scanner.nextDouble();
i++;
sum=sum+x;
}
System.out.println("输入数字的总和sum为:"+sum);
System.out.println("输入数字的平均数为:"+sum/i);
scanner.close();
}
}