Java 上机实践9(常用实用类)
(大家好,今天分享的是Java的相关知识,大家可以在评论区进行互动答疑哦~加油!💕)
目录
方法一(记事本)
方法二(IDEA)
实验一:检索简历
一、实验目的
二、实验要求
三、程序代码
四、实验结果
实验二:菜单的价格
一、实验目的
二、实验要求
三、程序代码
四、实验结果
实验三:比较日期
一、实验目的
二、实验要求
三、程序代码
四、实验结果
Plug:程序实现
方法一(记事本)
- 新建一个记事本
- 输入代码
- 另存文件
- 更改文件名,名字为public class后的名字+.java(Hello.java)
- 更改保存类型,选择所有文件
- 选择编码格式,一般选择ANSI 或 UTF-8(在编译时需加上固定格式-encoding utf-8)(这里我们选择UTF-8)
方法二(IDEA)
- 新建java文件
- 输入代码
- 编译运行
(相较简便一些)
实验一:检索简历
一、实验目的
本实验的目的是让学生掌握String类的用法。
二、实验要求
简历的内容如下:“姓名:张三 出生时间:1989.10.16。个人网站: http://www.zhang.com。身高:1.85cm,体重:72kg”。
编写一个Java应用程序,判断简历中的姓名是否姓“张”,单独输出简历中的出生日期和个人网站,并判断简历中的身高是否大于180cm,体重是否小于75kg。
三、程序代码
FindMess.java
public class FindMess {
public static void main(String args[]) {
String mess = "姓名:张三 出生时间:1989.10.16。个人网站:http://www.zhang.com。身高:185cm,体重:72kg";
int index =mess.indexOf(":"); //【代码1】mess调用indexOf(String s)方法返回字符串中首次出现冒号的位置
String name = mess.substring(index+1);
if(name.startsWith("张")) {
System.out.println("简历中的姓名姓\"张\"");
}
index = mess.indexOf(":",index+1); //【代码2】mess调用indexOf(String s,int start)方法返回字符串中第2次出现冒号的位置
String date = mess.substring(index+1,index+11);
System.out.println(date);
index = mess.indexOf(":",index+1);
int heightPosition = mess.indexOf("身高"); //【代码3】 mess调用indexOf(String s)方法返回字符串中首次出现"身高"的位置
String personNet = mess.substring(index+1,heightPosition-1);
System.out.println(personNet);
index = mess.indexOf(":",index+1); //【代码4】mess调用indexOf(String s,int start)方法返回字符串中"身高"后面的冒号位置
int cmPosition = mess.indexOf("cm");
String height = mess.substring(index+1,cmPosition);
height = height.trim();
int h = Integer.parseInt(height);
if(h>=180) {
System.out.println("简历中的身高"+height+"大于或等于180 cm");
}
else {
System.out.println("简历中的身高"+height+"小于180 cm");
}
index = mess.indexOf(":",index+1); //【代码5】mess调用lastIndexOf(String s)返回字符串中最后一个冒号位置
int kgPosition = mess.indexOf("kg");
String weight = mess.substring(index+1,kgPosition);
weight = weight.trim();
int w = Integer.parseInt(weight);
if(w>=75) {
System.out.println("简历中的体重"+weight+"大于或等于75 kg");
}
else {
System.out.println("简历中的体重"+weight+"小于75 kg");
}
}
}
四、实验结果
实验二:菜单的价格
一、实验目的
本实验的目的是让学生掌握使用Scanner类的对象从字符串中解析程序所需要的的数据。
二、实验要求
菜单简历的内容如下:“北京烤鸭:138元 西芹炒肉:12.9元 酸菜鱼:69元 铁板牛柳:32元”。
编写一个Java应用程序,输出菜单中的价格数据,并计算出菜单的总价格。
三、程序代码
ComputePrice.java
import java.util.*;
public class ComputePrice {
public static void main(String args[]) {
String menu = "北京烤鸭:189元 西芹炒肉:12.9元 酸菜鱼:69元 铁板牛柳:32元";
Scanner scanner =new Scanner(menu); //【代码1】使用构造方法Scanner(String str)创建scanner,将menu传递给构造方法的参数
String regex = "[^0123456789.]+";
scanner.useDelimiter(regex); //【代码2】scanner调用useDelimiter(String regex),将regex传递给该方法的参数
double sum=0;
while(scanner.hasNext()){
try{
double price = scanner.nextDouble(); //【代码3】scanner调用nextDouble()返回数字单词
sum = sum+price;
System.out.println(price);
}
catch(InputMismatchException exp){
String t = scanner.next();
}
}
System.out.println("菜单总价格:"+sum+"元");
}
}
四、实验结果
实验三:比较日期
一、实验目的
本实验的目的是让学生掌握使用Date类以及Calendar类的常用方法。
二、实验要求
菜单编写一个Java应用程序,用户输入两个日期,程序将判断两个日期的大小关系以及两个日期的间隔天数。
三、程序代码
CompareDate.java
import java.util.*;
public class CompareDate {
public static void main(String args[ ]) {
Scanner scanner = new Scanner(System.in);
System.out.println("输入第一个年,月,日数据");
System.out.print("输入年份");
short yearOne = scanner.nextShort();
System.out.print("输入月份");
byte monthOne = scanner.nextByte();
System.out.print("输入日期");
byte dayOne = scanner.nextByte();
System.out.println("输入第二个年,月,日数据");
System.out.print("输入年份");
short yearTwo = scanner.nextShort();
System.out.print("输入月份");
byte monthTwo= scanner.nextByte();
System.out.print("输入日期");
byte dayTwo = scanner.nextByte();
Calendar calendar = Calendar.getInstance(); //【代码1】初始化日历对象
calendar.set(yearOne, monthOne - 1, dayOne); //【代码2】将calendar的时间设置为yearOne年monthOne月dayOne日
long timeOne = calendar.getTimeInMillis(); //【代码3】calendar表示的时间转换成毫秒
calendar.set(yearTwo,monthTwo-1,dayTwo);
long timeTwo=calendar.getTimeInMillis();
Date date1 = new Date(timeOne); // 【代码4】用timeOne做参数构造date1
Date date2 =new Date(timeTwo);
if(date2.equals(date1))
System.out.println("两个日期的年、月、日完全相同");
else if(date2.after(date1))
System.out.println("您输入的第二个日期大于第一个日期");
else if(date2.before(date1))
System.out.println("您输入的第二个日期小于第一个日期");
long days=Math.abs(timeTwo - timeOne) / (1000 * 60 * 60 * 24);//【代码5】使用timeTwo,timeOne计算两个日期相隔天数
System.out.println(yearOne+"年"+monthOne+"月"+dayOne+"日和"
+yearTwo+"年"+monthTwo+"月"+dayTwo+"相隔"+days+"天");
}
}
四、实验结果
(今日分享暂时到此为止啦!为不断努力的自己鼓鼓掌吧🥳。今日文案分享:在光芒万丈之前,我们都要欣然接受眼下的难堪和不易,接受一个人的孤独和偶尔的无助。)