LAB:登录名.如果字符串超过一定数量的字符,打印整个字符串时出错



我正在做这个实验:

编写一个程序,为用户创建一个登录名,给定用户的名、姓和一个四位数整数作为输入。输出登录名,它由姓氏的前五个字母组成,后面是名字的第一个字母,然后是数字的最后两位数字(使用%操作符)。如果姓氏少于五个字母,则使用姓氏中的所有字母。

我有一个代码,用于输入,其中姓氏是五个字母或更多,但我很困惑如何添加的部分,其中有一个姓氏少于五个字母。我要用if语句吗?

下面是我的代码:
import java.util.Scanner;
public class LabProgram {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);

String userFirstName;
String userLastName;
int birthYear;
String loginName;

userFirstName = scnr.next();
userLastName = scnr.next();
birthYear = scnr.nextInt();

loginName = userLastName.substring(0,4); 
loginName = loginName + userFirstName.charAt(0);
loginName = loginName + (birthYear % 100) ;

System.out.println("Your login name: " + loginName);
}
}

Do I use an if statement?是的

这里的:

loginName = userLastName.substring(0,4); 
loginName = loginName + userFirstName.charAt(0);
loginName = loginName + (birthYear % 100) ;

你可以添加

if (userLastName.length()<5)
loginName = userLastName;
//this will initialize loginName with all the characters available
else 
loginName = userLastName.substring(0,4);
/* 
in my opinion this will return only 4 characters and not the fifth one
If that's the case, make the .substring(0,5);
*/
loginName = loginName + userFirstName.charAt(0);
loginName = loginName + (birthYear % 100) ;

最新更新