实验七 常用实用类
1. 实验目的
1、掌握String类的常用方法
2、掌握Date类以及Calendar类的常用方法 3、掌握接BigInteger类的常用方法
4、掌握怎样使用Pattern类和Match类检索字符串
2. 实验内容
1、根据附录里的源代码,按照注释要求,完成代码填空,使程序能够运行得出结果。
1) 实验1 检索图书 2) 实验2 购物小票 3) 实验3 比较日期 4) 实验4 处理大整数 5) 实验5 替换IP
6)实验6 String类的常用方法 2、完成习题:
1)计算某年、某月、某日和某年、某月、某日之间的天数间隔。要求年、
月、日通过main方法的参数传递到程序中。
2)编写程序,计算大整型数的阶乘,要求具体数值以系统后台交互方式
输入。
3)编写程序,计算1+2+3?的前99999999项的和。
3. 实验步骤
1、完成实验内容1中的程序填空、编译通过,并运行得到正确结果。 2、设计完成实验内容2中要求的程序,并通过编译、运行,最后得到正确结果。
4. 评分标准
1. 2. 3. 4. 5.
A——内容功能完善,编程风格好,人机接口界面好; B——内容功能完善,编程风格良好,人机接口界面良好; C——完成必做内容; D——能完成必做内容;
E——未按时完成必做内容,或者抄袭(雷同者全部为E).
参照书上实验按模版要求,将【代码】替换为Java程序代码,编写好完整的程序文档,最后运行得到的相关文件,把实验所得文件一起打包上交。(压缩包的文件名为:学号后三位和名字开头字母,如109zhh.RAR|ZIP)
实验1 检索图书
模板代码 FindMess.java
public class FindMess {
public static void main(String[] args) { } }
String mess=\书名:Java程序设计,出版社时间:2011.10.01,\出版社:清华大学出版社,价if(【代码1】){//判断mess中是否含有\程序\ }
int index=//【代码2】//mess调用indexOf(String s)返回mess中第2个冒号的位置 String date=mess.substring(index+1,index+11); System.out.println(date);
int pricePosition=//【代码3】//mess调用indexOf(String s)返回首次出现\价格\的位置 int endPosition=mess.indexOf(\元\
String priceMess=mess.substring(pricePosition+3,endPosition); System.out.println(\图书价格\double price=Double.parseDouble(priceMess); if(price>=29){ }
index=//【代码4】//mess调用laseIndexOf(String s,int start)返回最后1个冒号的位置 endPosition=mess.lastIndexOf(\页\
String pageMess=mess.substring(index+1,endPosition); int p=Integer.parseInt(pageMess); if(p>=360){ }
System.out.println(\图书价格\大于或等于360\System.out.println(\图书价格\小于360\}else{
System.out.println(\图书价格\大于或等于29元\System.out.println(\图书价格\小于29元\}else{
System.out.println(\图书信息包含有\\\程序\\\
格:29.8元,页数:389页\
实验2 购物小票
模板代码 FoundPrice.java
import java.util.regex.Matcher; import java.util.regex.Pattern;
public class FoundPrice { }
public static void main(String[] args) { }
String s=\牛奶:89.8元,香肠:12.9元,啤酒:69元,巧克力:132元\String regex=//【代码1】//匹配数字与小数点的正则表达式的字符串 int number=0; double sum=0.0; Matcher m = p.matcher(s); while(m.find()) { }
System.out.println(\购物小票中的商品种类:\种\System.out.println(\购物小票中的价格总额:\元\
System.out.println(m.group()); number=number+1; try{
sum=sum+//【代码3】//获取子匹配成功结果字符串并转成Double型类 }
catch(NumberFormatException e){ }
System.out.println(e.getMessage());
Pattern p = //【代码2】//使用regex初始化模式对象pattern
实验3 比较日期
模板代码
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=//【代码1】 //初始化日历对象
//【代码2】//将calendar的时间设置为yearOne年monthOne月dayOne日 long timeOne=//【代码3】 //calendar表示的时间转换成毫秒 calendar.set(yearTwo,monthTwo-1,dayTwo); long timeTwo=calendar.getTimeInMillis();
Date date1=//【代码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=//【代码5】//使用timeOne,timeTwo计算两个日期相隔天数 System.out.println(yearOne+\年\月\日和\
+yearTwo+\年\月\相隔\天\ } }
实验4 处理大整数
模板代码
HandleBigInteger.java
import java.math.*;
public class HandleBigInteger {
public static void main(String args[]){
BigInteger n1=new BigInteger(\ n2=new BigInteger(\ result=null;
result=//【代码1】//n1和n2做加法运算 System.out.println(\和:\result=//【代码2】//n1和n2做减法运算 System.out.println(\差:\result=//【代码3】//n1和n2做乘法运算 System.out.println(\积:\

