1.Scanner类简介
Scanner类是java.util包中的一个类
常用于控制台的输入,当需要从控制台输入时可调用这个类.
2.Scanner类用法
- 我们需要先构造一个Scanner类的对象,并且与标准的输入流System.in相关联
Scanner sca=new Scanner(System.in);
- 调用Scanner类对象sca的方法(如csa.nextInt();)从输入流中获取你需要的输入.
- 注:当创建了一个类对象后,控制台会等待用户输入,直到敲回车键结束,输入的内容会传给对象sca,若要获取输入的内容则可以调用sca的方法.
3.常用方法
3.1—nextInt();//读取整数
Scanner sca=new Scanner(System.in);
System.out.println("请输入数字,按回车键结束:");
int num1=sca.nextInt();
System.out.println("输入的数字为:"+num1);
//每次只能读取一个数字
也可以输入一组数字,每个数字可以用空格或者回车隔开,可被多个sca.naxtInt
读取.
package com.qf.yunsuan;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
System.out.println("请输入数字,按回车键结束:");
int num1=sca.nextInt();
int num2=sca.nextInt();
int num3=sca.nextInt();
System.out.println("输入的数字为:"+num1);
System.out.println("输入的数为为:"+num2);
System.out.println("输入的数为为:"+num3);
}
}
3.2—nextDouble();//与nextInt();类似,但是nextdouble可以读取浮点数
package com.qf.yunsuan;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
System.out.println("请输入数字,按回车键结束:");
double num1=sca.nextDouble();
double num2=sca.nextDouble();
double num3=sca.nextDouble();
System.out.println("输入的数字为:"+num1);
System.out.println("输入的数为为:"+num2);
System.out.println("输入的数为为:"+num3);
}
}
nextByte();—nextFloat();—nextLong();—nextShot();—方法类似
3.3—next();//可以获取字符串
package com.qf.yunsuan;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
System.out.println("请输入字符串,按回车键结束:");
String str1=sca.next();
String str2=sca.next();
String str3=sca.next();
System.out.println("输入的字符串为:"+str1);
System.out.println("输入的字符串为:"+str2);
System.out.println("输入的字符串为:"+str3);
}
}
3.4—nextLine();//获取光标所在当前行的内容
package com.qf.yunsuan;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
System.out.println("请输入字符串,按回车键结束:");
String str1=sca.next();//这里sca.next();只获取到了第一个字符串
String str2=sca.nextLine();
String str3=sca.nextLine();
System.out.println("输入的字符串为:"+str1);
System.out.println("输入的字符串为:"+str2);
System.out.println("输入的字符串为:"+str3);
}
}
3.5—next().char(value);//在输入的字符串中获取下标为value的字符
package com.qf.yunsuan;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
System.out.println("请输入字符串,按回车键结束:");
char ch1=sca.next().charAt(0);
char ch2=sca.next().charAt(2);
char ch3=sca.next().charAt(3);
System.out.println("输入的字符串为:"+ch1);
System.out.println("输入的字符串为:"+ch2);
System.out.println("输入的字符串为:"+ch3);
}
}
3.6—hasNext();//判断控制台是否有数据输入,返回boolean值
常用作需要多组输入,可以与while配合使用;
//可以判断多个数据是否为质数
package com.qf.yunsuan;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入一个整数:");
System.out.println("(退出请输入999!)");
//当有数据输入时scanner.hasNext()便为true
while(scanner.hasNext()) {
int x=scanner.nextInt();
if(x==999)
break;//中止循环
for(int i=2;i<=x/2;i++) {
if(x%i==0) {
System.out.println("不是质数");
System.out.println("请继续输入:");
break;
}
else if(i==x/2) {
System.out.println("是质数");
System.out.println("请继续输入:");
}
}
}
}
}