一、从控制台输入数据
在Java中,从控制台输入有多种方法,常用并且比较好用的是使用Scanner类,在使用的过程中可以从控制台获取整数、浮点数、字符串。
步骤如下:
(1) 在使用Scanner获取用户输入前,首先需要导入java.util.Scanner包
import java.util.Scanner;
(2) 然后在main方法中定义Scanner类的对象scanner(可以是其他名字)
Scanner scanner = new Scanner(System.in);
(3)通过Scanner类的nextXxx()方法获取相应的数据
scanner.nextInt() 获取整数
scanner.nextDouble() 获取浮点数
scanner.next() 获取字符串
scanner.nextLine() 获取字符串(包括空格)
说明:next()与nextLine() 之间的区别在于,next()方法是不接收空格的,在接收到有效数据前,所有的空格或者tab键等输入被忽略,如果有有效数据,则遇到这些键退出。nextLine()可以接收空格或者tab键,其输入应该以enter键结束,因此常用于在同一行中获取多个数据(可以是不同类型的)
举例:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的年龄:");
int age = scanner.nextInt();
System.out.println("请输入你的姓名:");
String name = scanner.nextLine();
System.out.println("请输入你的工资:");
double salary = scanner.nextDouble();
System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
}
}
补充说明:获取字符
获取字符相当于获取字符串的第一个字符,因此用字符串的charAt(0)方法来获取。
举例:
char sex = scanner.next().charAt(0);
二、从控制台同一行中输入多个数
可以使用nextLine()方法获取多个类型相同或者不同的数据,中间以空格分隔。
举例:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你的年龄、姓名和工资:");
String str = scanner.nextLine();
String[] strs = str.split(" "); //每个数据之间一般只有1个空格,除非把空格也当成输入的数据
int age = Integer.parseInt(strs[0]);
String name = strs[1];
double salary = Double.parseDouble(strs[2]);
System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
}
}
运算结果:
三、从控制台输出
(1)普通输出
System.out.println() 是最常用的输出语句,它会把括号里的内容转换成字符串输出到输出窗口(控制台),并且换行,当输出的是一个基本数据类型时,会自动转换成字符串,如果输出的是一个对象,会自动调用对象的toString();方法,将返回值输出到控制台.
System.out.print(); 与第一个很相似,区别就是上一个输出后会换行,而这个命令输出后并不换行。
举例:
System.out.println("hello world");
System.out.println(a)
(2) 格式化输出
举例:
int age = 20;
System.out.println("他的年龄是"+age);
这里是把“他的年龄是“字符串值和变量age一起输出。在Java中也可以使用格式化函数输出相应的效果。
比如,使用String.format()可以实现格式化输出
int age = 20;
double salary = 5000.256;
System.out.println(String.format("他的年龄是%d",age));
System.out.println(String.format("他的工资是%f",salary));
System.out.println(String.format("他的工资是%.2f",salary));
补充说明:
%d 表示整型数据
%f 表示浮点型数据,其中 .2 表示保留2位小数
任务1:
体重指数,又称身体质量指数,英文为Body Mass Index,简称BMI),是用体重公斤数除以身高米数平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。
男性低于20, 女性低于19,属于过轻;男性20-25,女性19-24,属于适中;男性25-30,女性24-29,属于过重;男性30-35,女性29-34,属于肥胖;男性高于35,女性高于34,属于非常肥胖。专家指出最理想体重指数是22。
要求键盘输入个人的身高、体重获得体重指数,并且输出,结果保存2位小数。
任务2:去商场淘打折商品时,计算打折以后的价钱是件颇费脑子的事情。例如原价 ¥988,标明打 7 折,则折扣价应该是 ¥988 x 70% = ¥691.60。本题就请你写个程序替客户计算折扣价。
输入格式:
输入商品的原价(不超过1万元的正整数)和折扣(为[1, 9]区间内的整数)。
输出格式:
在一行中输出商品的折扣价,保留小数点后 2 位。
输入输出样式
988
输出样式:
691.60
任务3:
本题目要求计算存款利息,计算公式为
其中为存款到期时的利息(税前),是存款金额,是存期,是年利率。
输入格式:
依次从键盘输入三个正实数,分别是money、year和rate
输出格式:
在一行中按“interest = 利息”的格式输出,其中利息保留两位小数。
输入样式:
1000 3 0.025
输出样式:
interest = 76.89