如何解决你如何让应用程序阅读第二个单词的第一个字母
我的老师给我的问题是:创建一个小组作业,提示用户输入他或她的姓名,然后显示一个小组作业。小组作业取决于学生姓氏的第一个字母。以 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 {...}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。