上机实验5 常用实用类

简介: 上机实验5 常用实用类

实验1 方法的重写

一、实验目的

   掌握常用方法的重写

二、实验内容

1.编写一个学生类,并重写equals()方法,当学生的姓名和年龄相同时,表示两个学生对象相同。

2.编写一个学生类,并重写toString()方法,调用该方法,输出学生的姓名和年龄,格式为姓名:XXX,年龄:XX

三、程序代码

1. import java.util.ArrayList;;
2. class Stu {
3.    String name;
4.    int age;
5. public boolean equals (Object obj) {
6.  if(this == obj)
7.  return true;
8.  else{return false;
9.  }
10. }
11. public Stu(String name,int age) {
12.      this.name=name;
13.      this.age=age;}
14. public String toString() {
15. return "姓名:"+name+","+"年龄:"+age;}}
16. public class Student {
17. public static void main(String[] args) {
18.   Stu s1 = new Stu("范燕",20);
19.   Stu s2 = new Stu("范燕",20);
20.   System.out.print("两学生对象是否相同:");
21.   System.out.println(s1.name.equals(s2.name)&&s1.age==s2.age);
22.   System.out.println("输出学生的姓名和年龄:");
23.   System.out.println(s1.toString());
24.   }
25. }

实验2 检索简历

一、实验目的

本实验的目的是让学生掌握String类的常用方法

二、实验内容

  简历的内容如下:

  “姓名:张三 出生时间:1989.10.16。 个人网站:http://www.zhang.com。身高:185 cm,体重:72 kg”

三、程序代码

1. public class FindMess {
2.  public static void main(String args[]) {
3.        String mess = "姓名:张三 出生时间:1989.10.16。个人网站:http://www.zhang.com。身高:185 cm,体重:72 kg";
4.        int index = mess.indexOf(":");//mess调用indexOf(String s)方法返回字符串中首次出现冒号的位置
5.        String name = mess.substring(index+1);
6.        if(name.startsWith("张")) {
7.            System.out.println("简历中的姓名姓\"张\"");
8.        }
9.        index = mess.indexOf(":", index+1);//mess调用indexOf(String s,int start)方法返回字符串中第2次出现冒号的位置
10.         String date = mess.substring(index+1,index+11);
11.         System.out.println(date);
12.         index = mess.indexOf(":",index+1);
13.         int heightPosition = mess.indexOf("身高");// mess调用indexOf(String s)方法返回字符串中首次出现"身高"的位置
14.         String personNet = mess.substring(index+1,heightPosition-1);
15.         System.out.println(personNet);
16.         index = mess.indexOf(":",heightPosition);//mess调用indexOf(String s,int start)方法返回字符串中"身高"后面的冒号位置
17.         int cmPosition = mess.indexOf("cm");
18.         String height = mess.substring(index+1,cmPosition);
19.         height = height.trim();
20.         int h = Integer.parseInt(height);
21.         if(h>=180) {
22.            System.out.println("简历中的身高"+height+"大于或等于180 cm");
23.         }  
24.         else {
25.            System.out.println("简历中的身高"+height+"小于180 cm");
26.         }
27.         index = mess.lastIndexOf(":");//mess调用lastIndexOf(String s)返回字符串中最后一个冒号位置
28.         int kgPosition = mess.indexOf("kg");
29.         String weight = mess.substring(index+1,kgPosition);
30.         weight = weight.trim();
31.         int w = Integer.parseInt(weight);
32.         if(w>=75) {
33.            System.out.println("简历中的体重"+weight+"大于或等于75 kg");
34.         }  
35.         else {
36.            System.out.println("简历中的体重"+weight+"小于75 kg");
37.         }
38.      }
39. }

四、实验指导

  1.字符串s调用subString()返回一个新的字符串对象,而s本身不会发生变化。

  2.字符串s调用replaceAll(String newS,String olds)返回一个新的字符串对象,而s本身不会发生变化。

实验3 字符串方法练习

1.模拟登录,输入用户名和密码,给三次机会,并提示还有几次。

1. import java.util.Scanner;
2. public class User {
3. public static void main(String[] args) {
4.  Scanner val = new Scanner(System.in);
5.  int times = 0;//用于存储出错次数
6.  while(true) {//构建一个死循环
7.    System.out.println("请输入密码:");
8.    if(val.nextLine().equals("123")){//判断用户输入是否等于123
9.      System.out.println("Welcome");
10.       break;//退出循环
11.     }
12.     else {//密码出错执行
13.       times++;
14.       if(times<3) {
15.         System.out.println("密码错误,你还有"+(3-times)+"次机会");
16.         continue;//不再继续执行,回到while语句
17.       }
18.       else {
19.         System.out.println("bye!");
20.         return;//退出主方法,结束运行
21.       }
22.     }
23.   }
24.   val.close();//关闭Scanner对象
25. }
26. }

2.遍历字符串中的每一个字符

  使用的方法:length() 长度

  charAt() 取指定位置的字符

1. import java.util.Scanner;
2. public class Strings {
3. public static void main(String[] args) {
4.  Scanner val = new Scanner (System.in);
5.  String str = "Hello World!";
6.  System.out.println("字符串长度为:"+str.length());
7.  System.out.print("请输入所取字符的位置:");
8.  System.out.println(str.charAt(val.nextInt()));
9.  }
10. }

实验4 菜单的价格

一、实验目的

掌握怎样使用Scanner类的对象从字符串中解析程序所需要的数据

二、实验内容

菜单的内容如下:

“北京烤鸭:189元 西芹炒肉12.9元 酸菜鱼:69元 铁板牛柳:32元”

编写一个Java应用程序,输出菜单中的价格数据,并计算出菜单的总价格。

三、程序代码

1. import java.util.InputMismatchException;
2. import java.util.Scanner;
3. public class ComputePrice {
4.   public static void main(String args[]) {
5.        String menu = "北京烤鸭:189元 西芹炒肉:12.9元 酸菜鱼:69元 铁板牛柳:32元";
6.        Scanner scanner = new Scanner(menu);//【代码1】 //使用构造方法Scanner(String str)创建scanner,将menu传递给构造方法的参数
7.        String regex = "[^0123456789.]+";
8.        scanner.useDelimiter(regex);//【代码2】 //scanner调用useDelimiter(String regex),将regex传递给该方法的参数
9.        double sum=0;
10.         while(scanner.hasNext()){
11.            try{ 
12.                 double price = scanner.nextDouble();//【代码3】 //scanner调用nextDouble()返回数字单词
13.                 sum = sum+price;
14.                 System.out.println(price);
15.            } 
16.            catch(InputMismatchException exp){
17.                 String t = scanner.next();
18.            }   
19.         }
20.         System.out.println("菜单总价格:"+sum+"元");
21.      }
22. }

四、实验指导

1.Scanner可以用nextInt()或nextDouble()方法解析字符串中的数字型单词,即Scanner可以调用nextInt()或nextDouble()方法将数字型单词转化为int或double数据返回。

2.如果单词不是数字型单词,Scanner调用nextInt()或nextDouble()方法将发生InputMismatchException异常。

实验5 日期录入

一、实验目的

掌握Date和SimpleDateFormat类的使用

二、实验内容

  1.从键盘接收字符串日期信息,并按照Date类型保存,要求日期格式为XXXX/XX/XX的格式录入,按照XXXX年XX月XX日的格式输出。

1. import java.util.Date;
2. import java.util.Scanner;
3. import java.text.ParseException;
4. import java.text.SimpleDateFormat;
5. 
6. public class DataTest {
7. public static void main(String[] args) throws ParseException {
8.  Scanner scanner=new Scanner(System.in);//键盘输入日期
9.  System.out.println("输入的日期为:");
10.     String bir=scanner.next();//获取键盘输入内容
11.     SimpleDateFormat d=new SimpleDateFormat("yyyy/MM/dd");
12.     Date date=d.parse(bir);
13.   System.out.println("输出的日期为:");
14.     SimpleDateFormat e=new SimpleDateFormat("yyyy年MM月dd日");
15.   System.out.println(e.format(date));
16. }
17. }

 2.算一下你来到这个世界多少天?

 提示:将你的出生日和今天都封装到字符串里

            将字符串转换成日期对象

            将日期对象转换成毫秒值

            让今天的毫秒值减去你出生那天的毫秒值

            将毫秒值转换成天数

1. import java.text.ParseException;
2. import java.text.SimpleDateFormat;
3. import java.util.Date;
4. import java.util.Scanner;
5. 
6. public class Birthday {
7.     public static void main(String[] args) throws ParseException {
8.         Scanner scanner=new Scanner(System.in);//键盘输入天数
9.         System.out.println("请输入你的出生日期:");
10. String bir=scanner.next();//获取键盘输入内容
11.         SimpleDateFormat d=new SimpleDateFormat("yyyy/MM/dd");
12. Date date=d.parse(bir);
13.         long birth=date.getTime();
14. //获取当前日期,转化为毫秒值
15.         long day=new Date().getTime();
16. //使用当前日期的毫秒值-出生日期的毫秒值
17.         long time=day-birth;
18. //把毫秒差值转换为天(s/1000/60/60/24)
19.         System.out.println("你已经来到这个世界"+time/1000/60/60/24+"天了");
20.     }
21. }
目录
相关文章
|
10月前
|
C++
西安石油大学C++上机实验 上机五:模板和异常处理程序设计(2 学时)
西安石油大学C++上机实验 上机五:模板和异常处理程序设计(2 学时)
31 0
|
10月前
|
存储 C++
西安石油大学C++上机实验 上机六 输入输出流程序设计
西安石油大学C++上机实验 上机六 输入输出流程序设计
44 0
第一次机房收费——上机流程
第一次机房收费——上机流程
73 0
|
Java Windows
上机实验1 熟悉Java程序开发环境
上机实验1 熟悉Java程序开发环境
77 0
上机实验9 多线程案例
上机实验9 多线程案例
55 0
|
存储
上机实验6 集合案例
上机实验6 集合案例
99 0
|
网络协议
上机实验11 网络编程
上机实验11 网络编程
58 0
上机实验4 异常处理案例
上机实验4 异常处理案例
90 0
|
Java
上机实验3-2 Java面向对象编程(二)
上机实验3-2 Java面向对象编程(二)
158 0
|
Java
上机实验3-3 Java面向对象编程(三)
上机实验3-3 Java面向对象编程(三)
286 0