“输入是为了更好地输出”——Andy夏季八讲
基本语法
Scanner x = new Scanner(System.in);
通过Scanner类的 next() 与 nextLine() 方法获取输入的字符串:
next()
- 一定要读取到有效字符后才可以结束输入(状态)。
- 输入有效字符前遇到空格,next()方法会自动去掉空格。
- 有效字符后的空格作为分隔符或终止符。
- 所以next()方法不能得到带空格的字符串。
package a.b.c;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描对象,用于接受键盘输入
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if (scanner.hasNext()){
//使用next方式接收
String str = scanner.next();
System.out.println("输出的内容为:"+str);
}
//凡是属于IO流的类如果不关闭会一直占用资源,要养成习惯用完就关掉
scanner.close();
}
}
nextLine()
- 以回车键(enter)作为结束符,故该方法能输入回车前所有的字符。
- 可以正常输入空格。
package a.b.c;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); //创建一个扫描对象,用于接受键盘输入
System.out.println("使用next方式接收:");
if (scanner.hasNextLine()){ //判断用户有没有输入字符串
String str = scanner.nextLine(); //使用nextLine方式接收,使可以输入空格
System.out.println("输出的内容为:"+str);
}
scanner.close(); //凡是属于IO流的类如果不关闭会一直占用资源,要养成习惯用完就关掉
}
}
连续输入
package a.b.c;
import java.util.Scanner;
public class Demo03 { //连续读取
public static void main(String[] args) {
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("输入的不是整数数据");
System.out.println("请输入小数:"); //连续读取小数
if (scanner.hasNextFloat()){
f = scanner.nextFloat();
System.out.println("小数数据:" + f);
}
else
System.out.println("输入的不是小数数据");
}
}
练习案例
求和并给出均值
package a.b.c;
import java.util.Scanner;
public class Demo04 { //连续读取实践
public static void main(String[] args) {
//我们要输入多个数字,并求总和与平均数,每个输入由回车确认
Scanner scanner = new Scanner(System.in);
//求和
double sum = 0;
//计算输入了多少数字
int m = 0;
System.out.println("请输入数字");
//通过循环判断是否还有输入,并对每一次进行求和和统计
while(scanner.hasNextDouble()){
double x = scanner.nextDouble();
m++;
sum +=x;
}
System.out.println(m + "个数的和为" + sum);
System.out.println(m + "个数的平均值是" + (sum/m));
}
}
生成等边三角形
package a.b.c;
import java.util.Scanner;
public class tridemo04 { //输出等边三角形
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); //键盘输入三角形的高h
System.out.println("请输入一个大于1的整数");
int height = scanner.nextInt();
scanner.close();
for(int i=1; i<=height; i++){ //自顶向下生成三角形
for(int j=1; j<=(height-i); j++) //第n行有(h-n)个空格
System.out.print(" ");
for(int s=1; s<=2*i-1; s++) //第n行有(2n-1)个*
System.out.print("*");
System.out.print("\n"); //换行
}
}
}