1. Runtime类
Runtime类代表java程序的运行时环境,每个程序都有一个与之关联的Runtime实例,应用程序通过该对象与运行时环境相连。
应用程序不能自己创建Runtime对象,可以通过Runtime的静态方法getRuntime()获得Runtime对象。
2.Date类
java.util.Date类表示特定的瞬间。
常用构造方法:
1.Date() 使用系统当前的时间创建 一个Date实例内部就是使用System. currentTimeMillis()获取系统当前时间的毫秒数来创建Date对象;
2.Date(long dt) 使用自1970年1月1日00:00:00 GMT以来的指定毫秒数创建 一个Date实例
常用方法;
3.getTime() 返回自 1970 年 1 月 1 日 00:00:00GMT 以来此 Date 对象表示的毫秒数;
4.toString() 把此 Date 对象转换为以下形式的 String;
3. SimpleDateFormat类
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
4. Calendar类
Calendar类(日历)是一个抽象基类,主要用于完成日期字段之间相互操作的功能。即可以设置和获取日期数据的特定部分。
获取Calendar类的实例的方法:
1、使用 Calendar.getInstance();
2、调用它的子类GregorianCalendar的构造方法
一个Calendar的实例是系统时间的抽象表示,可以通过这个实例上的get(int field)方法来取得您想要的时间信息。
publicint get(int field) 根据给定的日历字段获得当前时间中相应字段的值。
5. BigInteger类和BigDecemal
java中针对大数的处理,提供了大整数和大小数
注意:在实际开发中,关于金钱方面的,不会使用double类型,而是使用java.math.DigDecimal类型
练习1:
制作一个UserInfo类,内部用来记录用户注册信息,要求模仿注册环节。
import java.util.Scanner;
public class Test8 extends UserInfo{
public Test8(String uid, String pwd, String uName, String sex, int uAge, String uEmail, String uAddress) {
super(uid, pwd, uName, sex, uAge, uEmail, uAddress);
}
public static void main(String[] args) {
//用户名 长度必须大于3位 用户名必须以 字母开头
Scanner input = new Scanner(System.in);
Scanner sc = new Scanner(System.in);
System.out.print("请输入用户名:");
String uid = input.next();
uid = uid.trim();
char ch = uid.charAt(0);
// 判断用户名的合法性
if (!(uid.length() > 3) && !((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'))) {
System.out.println("提示:用户名的长度必须大于3位 用户名必须以 字母开头");
}
//密码长度不能低于6位 密码和确认密码必须一致
System.out.println("请输入密码:");
String password = input.nextLine();
System.out.println("请输入确认密码:");
String againPassword = sc.nextLine();
// 判断密码的合法性
if(!(password.length() >= 6 && password.equals(againPassword))) {
System.out.println("提示:密码长度不能低于6位 密码和确认密码必须一致");
}
//性别必须是男 或者 女
System.out.print("请选择性别(1.男 2.女): ");
int choose = input.nextInt();
String sex ="";
if(choose == 1) {
sex = "男";
} else if(choose == 2){
sex = "女";
}else {
System.out.println("提示:请选择性别");
}
//年龄 必须是在 16 ~ 50之间
System.out.print("请输入年龄:");
int age = input.nextInt();
if(!(age >= 16 && age <= 50)) {
System.out.println("提示:年龄 必须是在 16 ~ 50之间");
}
//电子邮箱 :必须包含@(且只能有一个),至少有一个 . @的位置必须在 .的前面@与.之间必须有字符
//邮箱的地址必须以 .com .cn .net .org结尾
System.out.print("请输入电子邮箱:");
String uEmail = input.next();
if(!checkuEmail(uEmail)){
System.out.println("提示:电子邮箱必须包含@(且只能有一个)," +
"至少有一个 . @的位置必须在 .的前面,@与.之间必须有字符" +
"邮箱的地址必须以 .com .cn .net .org结尾");
}
//用户地址长度不能超过150位
System.out.print("请输入用户地址:");
String userAddress = input.next();
if(userAddress.length() > 150) {
System.out.println("提示:用户地址长度不能超过150位");
}
}
private static boolean checkuEmail(String uEmail) {
char[] emailArr = uEmail.toCharArray();
boolean flag = true;
int i = -1; //计算@的索引
int iNum = 0; //计算@的个数
int j = -1; //计算.的索引
int jNum = 0; //计算@的个数
for(int t = 0; t < emailArr.length; t++) {
if(emailArr[t] == '@') {
i = t;
iNum++;
if(iNum > 1) {
flag = false;
break;
}
}
if(emailArr[t] == '.') {
j = t;
jNum++;
if(jNum > 1) {
flag = false;
break;
}
}
}
//if(!((i + 1) < j)) {
if( flag && i > j && uEmail.substring(i + 1, j).isEmpty()) {
flag = false;
}
if(flag && uEmail.endsWith(".com")) {
flag = true;
} else if(flag && uEmail.endsWith(".cn")) {
flag = true;
} else if(flag && uEmail.endsWith(".net")) {
flag = true;
} else if(flag && uEmail.endsWith(".org")) {
flag = true;
} else {
flag = false;
}
return flag;
}
}
练习2:
登录验证通过后,显示批发商品信息; 输入批发商品编号和数量,以指定格式显示总金额。
import com.fs.Demo1.Product;
import java.util.Scanner;
public class Test10 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Scanner input1 = new Scanner(System.in);
System.out.print("请输入用户名:");
String userName = input.next();
System.out.print("请输入密码:");
String password = input1.nextLine();
System.out.println("登录成功!");
System.out.println("***********欢迎进入商品批发城**************");
System.out.println("/t/t编号/t/t商品/t/t价格");
Product[] productArr = Test10.generate();
Test10.showProduct(productArr);
System.out.println("****************************************");
System.out.print("请输入您要批发的商品编号:");
int choose = input.nextInt();
System.out.print("请输入批发数量:");
int productNum = input.nextInt();
double totalMoney = productNum * productArr[choose - 1].getProductPrice();
System.out.print("您需要付款:");
printPrice(totalMoney);
}
// 初始化
public static Product[] generate() {
Product[] productArr = new Product[5];
productArr[0] = new Product("电风扇",124.23);
productArr[1] = new Product("洗衣机",4500.0);
productArr[2] = new Product("电视机",8800.9);
productArr[3] = new Product("冰箱",5000.88);
productArr[4] = new Product("空调机",4456.0);
return productArr;
}
// 显示数据信息
public static void showProduct(Product[] productArr){
for(int i = 0; i < productArr.length; i++) {
System.out.print("\t\t" + (i + 1) + "\t\t" + productArr[i].getProductName() + "\t\t");
// 按照格式要求输出价格;
printPrice(productArr[i].getProductPrice());
}
}
// 按照格式要求输出价格;
// togo
public static void printPrice(double price) {
// 取整数部分;
int intNum = (int)price;
// 取小数部分;
int doubleNum =(int)(price - intNum) * 100;
// 处理整数部分
printIntStr(intNum);
// 处理小数部分
System.out.println("." + doubleNum);
}
// 处理整数部分
public static void printIntStr(int number) {
String s = "" + number;
char[] charArr = s.toCharArray();
int i = charArr.length % 3;
for(int t = 0; t < i; t++) {
System.out.print(charArr[t]);
}
if(i != 0) {
System.out.print(",");
}
int k = 0;
for(int j = i; j < charArr.length; j++) {
k++;
System.out.print(charArr[j]);
if(k % 3 == 0 && j != charArr.length - 1) {
System.out.print(",");
}
}
}
}