1 scanner类
Scanner类属于java.util包
要调用Scanner类的方法 必须先创建一个对象 Java中的对象使用new运算符来创建
下面的语句创建了一个Scanner类对象 它读入键盘输入:
Scanner scan=new Scanner(System.in)
Scannner类的构造方法接收一个参数,这个参数代表了输入源。System.in对象代表标准输入流
默认是键盘
Scanner对象用空白(空格 水平制表符及回车换行符)作为输入的分隔符。
next()方法读入下一个输入对象 将它作为字符串返回
nextline()读入当前行的所有输入 直到行位 然后作为字符串返回。
源代码
import java.util.Scanner;
import java.text.DecimalFormat;
public class Bmi{
public static void main(String[] args)
{
int age;
double weight,height,bmi;
Scanner scan=new Scanner(System.in); //创建从键盘获取输入值
System.out.println("请输入您的年龄:");
age=scan.nextInt();
System.out.println("请输入您的身高(m):");
height=scan.nextDouble();
System.out.println("请输入您的体重(kg):");
weight=scan.nextDouble();
bmi=weight/(height*height);
System.out.println("BMI:"+bmi);
DecimalFormat fmt=new DecimalFormat("0.###"); //格式对象保留3位有效数字
System.out.println("3位有效数字BMI="+fmt.format(bmi));
fmt=new DecimalFormat("0.##"); //小数部分保留2位有效数字
System.out.println("2位有效数字BMI"+fmt.format(bmi));
}
}
输入
请输入您的年龄:
24
请输入您的身高(m):
1.67
请输入您的体重(kg):
67
结果:
BMI:24.023808670084982
3位有效数字BMI=24.024
2位有效数字BMI24.02
2 .NumberFormat类和DecimalFormat类
java中的标准库类 DecimalFormat类 定义在java.text包中
NumberFormat类中的getInstance()方法 返回当前默认语言环境的默认数值格式
然后使用格式对象来调用format()方法,将参数按相应的模式格式化后作为字符串返回。
import java.text.NumberFormat;
public class Bmi{
public static void main(String[] args)
{
Double myNumber=12345.123456789;
Double test=1.2345;
String myString=NumberFormat.getInstance().format(myNumber); //按默认格式输出
System.out.println("默认格式是:"+myString);
myString=NumberFormat.getCurrencyInstance().format(myNumber);
System.out.println("通用格式是:"+myString);
myString=NumberFormat.getPercentInstance().format(test);
System.out.println("按百分比格式输出:"+myString);
NumberFormat format=NumberFormat.getInstance();
format.setMinimumFractionDigits(3);
format.setMaximumFractionDigits(4); //小数最大位数
format.setMaximumIntegerDigits(5); //整数最大位数
format.setMinimumIntegerDigits(0);
System.out.println(format.format(123456789.123456789));
}
}
输出结果
默认格式是:12,345.123
通用格式是:¥12,345.12
按百分比格式输出:123%
56,789.1235