java Scanner类
next方法:
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//从键盘接收数据
Scanner SC = new Scanner(System.in);
//next方式接收字符串
System.out.println("接收:");
//判断是否输入
if (SC.hasNext()){
String str= SC.next();
System.out.println("键盘输入:"+str);
}
SC.close();
}
}
nextLine方法:
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("nextLine方法输入");
if (sc.hasNextLine()){
String str=sc.nextLine();
System.out.println("输入的数据为"+str);
}
sc.close();
}
}
next与nextLine的区别
next():
- 1、一定要读取到有效字符后才可以结束输入。
- 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
- 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- next() 不能得到带有空格的字符串。
nextLine():
- 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
- 2、可以获得空白。
输入int或float类型的接收方法
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i=0;
float f=0.0f;
System.out.println("输入整数或小数:");
if (sc.hasNextInt()){
i= sc.nextInt();
System.out.println("接收到的整数为:"+i);
}else {
System.out.println("输入的不是整数");
}
if (sc.hasNextFloat()){
f=sc.nextFloat();
System.out.println("接收到的小数为:"+f);
}else {
System.out.println("输入的不是小数");
}
sc.close();
}
}
实例:输入多个数字并求其总和和平均数
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入:");
double d=0;
int i=0;
//输入一次循环一次输入非数字类型结束
while (sc.hasNextDouble()){
//计数器循环一次自增1
i=i+1;
double num= sc.nextDouble();
System.out.println(i+"\t成绩:"+num);
//循环累加和
d=d+num;
}
System.out.println("总成绩为:"+d);
System.out.println("平均成绩为:"+d/i);
sc.close();
}
}
练习:
import java.util.Scanner;
/*
* 计算平均数和总和
* */
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入成绩:");
int i =0;//计数器
double num=0;//成绩
//判断键盘输入的是否为double类型是的话则循环,不是则结束。
while(sc.hasNextDouble()){
i=i+1;
double sum=sc.nextDouble();
//每循环一次将sum获取到的数字加入num
num=num+sum;
}
System.out.println("和为:"+num);
System.out.println("平均数为:"+num/i);
}
}
num=num+sum;
}
System.out.println("和为:"+num);
System.out.println("平均数为:"+num/i);
}
}