上机实验5 常用实用类

实验1 方法的重写

一、实验目的

    掌握常用方法的重写

二、实验内容

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

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

三、程序代码

import java.util.ArrayList;;
class Stu {
	  String name;
	  int age;
public boolean equals (Object obj) {
	if(this == obj)
	return true;
	else{return false;
	}
}
public Stu(String name,int age) {
	   this.name=name;
	   this.age=age;}
public String toString() {
    return "姓名:"+name+","+"年龄:"+age;}}
public class Student {
public static void main(String[] args) {
	Stu s1 = new Stu("范燕",20);
	Stu s2 = new Stu("范燕",20);
	System.out.print("两学生对象是否相同:");
	System.out.println(s1.name.equals(s2.name)&&s1.age==s2.age);
	System.out.println("输出学生的姓名和年龄:");
	System.out.println(s1.toString());
	}
}

实验2 检索简历

一、实验目的

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

二、实验内容

   简历的内容如下:

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

三、程序代码

public class FindMess {
	public static void main(String args[]) {
	      String mess = "姓名:张三 出生时间:1989.10.16。个人网站:http://www.zhang.com。身高:185 cm,体重:72 kg";
	      int index = mess.indexOf(":");//mess调用indexOf(String s)方法返回字符串中首次出现冒号的位置
	      String name = mess.substring(index+1);
	      if(name.startsWith("张")) {
	          System.out.println("简历中的姓名姓\"张\"");
	      }
	      index = mess.indexOf(":", index+1);//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("身高");// mess调用indexOf(String s)方法返回字符串中首次出现"身高"的位置
	      String personNet = mess.substring(index+1,heightPosition-1);
	      System.out.println(personNet);
	      index = mess.indexOf(":",heightPosition);//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.lastIndexOf(":");//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");
	      }
	   }
}

四、实验指导

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

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

实验3 字符串方法练习

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

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

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

   使用的方法:length() 长度

   charAt() 取指定位置的字符

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

实验4 菜单的价格

一、实验目的

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

二、实验内容

菜单的内容如下:

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

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

三、程序代码

import java.util.InputMismatchException;
import java.util.Scanner;
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+"元");
	   }
}

四、实验指导

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日的格式输出。

import java.util.Date;
import java.util.Scanner;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class DataTest {
public static void main(String[] args) throws ParseException {
	Scanner scanner=new Scanner(System.in);//键盘输入日期
	System.out.println("输入的日期为:");
    String bir=scanner.next();//获取键盘输入内容
    SimpleDateFormat d=new SimpleDateFormat("yyyy/MM/dd");
    Date date=d.parse(bir);
	System.out.println("输出的日期为:");
    SimpleDateFormat e=new SimpleDateFormat("yyyy年MM月dd日");
 	System.out.println(e.format(date));
}
}

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

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

             将字符串转换成日期对象

             将日期对象转换成毫秒值

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

             将毫秒值转换成天数

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Birthday {
    public static void main(String[] args) throws ParseException {
        Scanner scanner=new Scanner(System.in);//键盘输入天数
        System.out.println("请输入你的出生日期:");
        String bir=scanner.next();//获取键盘输入内容
        SimpleDateFormat d=new SimpleDateFormat("yyyy/MM/dd");
        Date date=d.parse(bir);
        long birth=date.getTime();
        //获取当前日期,转化为毫秒值
        long day=new Date().getTime();
        //使用当前日期的毫秒值-出生日期的毫秒值
        long time=day-birth;
        //把毫秒差值转换为天(s/1000/60/60/24)
        System.out.println("你已经来到这个世界"+time/1000/60/60/24+"天了");
    }
}

  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Meteor.792

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值