你如何让应用程序读取第二个单词的第一个字母
How do you make the application get to read the 1st letter of the 2nd word
老师给我的问题是:创建一个小组作业,提示用户输入他或她的名字,然后显示一个小组作业。小组分配取决于学生姓氏的第一个字母。以 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#split
将名称拆分为space得到两部分。
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 {...}
您可以拆分以空格分隔的字符串并像这样提取部分:
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.");
}
老师给我的问题是:创建一个小组作业,提示用户输入他或她的名字,然后显示一个小组作业。小组分配取决于学生姓氏的第一个字母。以 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#split
将名称拆分为space得到两部分。
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 {...}
您可以拆分以空格分隔的字符串并像这样提取部分:
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.");
}