你如何让申请书读第二个单词的第一个字母



老师给我的问题是:创建一个分组作业,提示用户输入姓名,然后显示分组作业。小组作业取决于学生姓氏的第一个字母。以A到I开头的姓氏分配给第1组,J到S分配给第2组,T到Z分配给第3组。

示例输出:输入您的名字和姓氏:Janus Smith您被分配到第2组。

我不知道获取第二个单词的第一个字母的代码,如果它们仍然是代码错误,请修复它。Tnx。

Scanner scan = new Scanner(System.in);
String name;

System.out.println("Enter your first and last name: ");
name = scan.nextLine();


for (int i = 0; i < name.length; i++){
char ch = name.charAt(0);

if(ch >= 'A' || ch >= 'a' || ch <= 'I' || ch <= 'i'){
System.out.println("You are assigned to group 1.");
}
else if (ch >= 'J' || ch >= 'j' || ch <= 'S' || ch <= 's'){
System.out.println("You are assigned to group 2.");
}
else if (ch >= 'T' || ch >= 't' || ch <= 'Z' || ch <= 'z'){
System.out.println("You are assigned to group 3.");
}
}

您可以拆分以空格分隔的字符串,并提取如下部分:

String name = "First Second";
String[] parts = name.split(" ");
// extract the second string from the 0-indexed array
String second = parts[1];
// extract the first character from the second string
char ch = second.charAt(0);
// no need to loop for a single name check
if(ch >= 'A' && ch <= 'I' || ch >= 'a' && ch <= 'i'){
System.out.println("You are assigned to group 1.");
}
else if (ch >= 'J' && ch <= 'S' || ch >= 'j' && ch <= 's'){
System.out.println("You are assigned to group 2.");
}
else if (ch >= 'T' && ch <= 'Z' || ch >= 't' && ch <= 'z'){
System.out.println("You are assigned to group 3.");
}
else {
System.out.println("Invalid input.");
}

使用String#split按空格分割名称,得到两部分。

String[] parts = name.split(" ");

parts[0]具有第一个名称,而parts[1]具有最后一个名称。

获取姓氏的第一个字符作为

char ch = parts[1].charAt(0);

此外,您的条件也是错误的。必须使用&&检查字符是否在范围之间。

if(ch >= 'A' && ch <= 'I' || ch >= 'a' && ch <= 'i')

为了简化条件,可以将字符转换为小写或大写,并检查一组范围。

char ch = Character.toUpperCase(parts[1].charAt(0));
if (ch >= 'A' && ch <= 'I') {...}
else if (ch >= 'J' && ch <= 'S') {...}
else {...}

相关内容

  • 没有找到相关文章

最新更新