oop作业进度+练习part1.0,java练习的小tips

作业内容:搭建一个基于java的比赛数据库,可以储存和输入选手个人信息并记录于文件内

 

该作业内容较为简单,属于巩固基础知识的类型(希望不要被打脸) 

主要用到5个文件:Name,Competitor,ComprtitorList, Manager以及最终的Main方法

本次小节先对Name做一归纳:

package sample;

public class Name {
    private String firstName;
    private String middleName;
    private String lastName;

    //constructor to create object with a first and last name
    public Name(String fName, String lName) {
        firstName  = fName;
        middleName = "";
        lastName   = lName;
    }
   public Name(String fName, String mName, String lName) {
        firstName  = fName;
        middleName = mName;
        lastName   = lName;
    }
    public Name (String fullName) {
        int spacePos1 = fullName.indexOf(' ');
        firstName = fullName.substring(0, spacePos1);
        int spacePos2 = fullName.lastIndexOf(' ');
        if (spacePos1 == spacePos2)
            middleName = "";
        else
            middleName = fullName.substring(spacePos1+1, spacePos2);
        lastName = fullName.substring(spacePos2 + 1);
    }
   public String getFirstName() {return firstName; }
    public String getLastName() {return lastName; }

    public String getMiddleName(){
        if (middleName!=""){
            return middleName;
        }
        else return "";
    }
   public void setLastName(String ln) {
        lastName = ln;
    }
    public String getFirstAndLastName() {
        return firstName + " " + lastName;
    }
   public String getLastCommaFirst() {
        return lastName + ", "+ firstName;
    }
   public String getFullName() {
        String result = firstName + " ";
        if (!middleName.equals("")) {
            result += middleName + " ";
        }
        result += lastName;
        return result;
    }
}

个人理论不甚过关,如有错误欢迎指出哈

Name创建一个新的class,针对不同输入的String字符串均有对应的方法,目的在于获取整段字符串中的姓和名,并在需要的时候分别返回值。为了针对不同形式的输入方法,这里同时对姓,中间名,名的输入分别写出的对应方法,实际测试的时候只用到了fullname的输入方法。

根据个人的编程习惯,此处添加了setName等类型的方法,用于可能需要的修改姓名的情况,此次作业中并未出现,也可不加。

此处主要重难点在于对输入的全名字符串,需要先识别其中的分隔符(空格键),再判断名字中是否含有前,中,后名共三节,如果有则将其分别表示。

这里通过标记第一个空格键的位置,与最后一个做对比,即可知道全名中是否只有一个空格键,即是否只有姓,名(no middle name) 

通常情况下,姓,中间名和名分别有一个。但是当中间名有多个的时候,这个方法只能获取整段中间名,无法再次使用空格键对其进行进一步的划分。当然,在本次的作业中,这个方法已经很是够用了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值