你如何让应用程序读取第二个单词的第一个字母

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.");
}