提问人:FlyingRacoon51 提问时间:6/20/2022 最后编辑:Federico klez CullocaFlyingRacoon51 更新时间:6/21/2022 访问量:268
想要打印以字母“a”结尾的名称,Java
Want to print the names which ends up with the letter "a" , Java
问:
基本上,我想打印以字母“a”结尾的名称,并计算这些名称的百分比。我正在尝试一些“charAt”的东西,但我无法跳过它。
String[] array = new String[10];
Scanner sc = new Scanner(System.in);
System.out.println("ENTER THE NAMES");
String name = sc.nextLine();
for (int i = 0; i < array.length; i++) {
array[i] = sc.nextLine();
if (name.length() < array[i].length()) {
name = array[i];
}
}
System.out.println("LONGEST NAME: " + name);
for (int i = 0; i < array.length; i++) {
if (name.length() > array[i].length()) {
name = array[i];
}
}
System.out.println("SHORTEST NAME: " + name);
for (int i = 0; i < array.length; i++) {
if (name.endsWith("a")) {
System.out.println(name);
}
}
答:
1赞
Rodolffo
6/20/2022
#1
您不会将 name 的值更新为 ,因此您基本上会循环使用相同的值十次。这应该可以解决它:array[i]
for (int i = 0; i < array.length; i++) {
name = array[i];
if (name.endsWith("a")) {
System.out.println(name);
}
}
另一种可能性是使用 array[i] 而不是 name(但当您多次使用它时,最好使用第一种解决方案):
for (int i = 0; i < array.length; i++) {
if (array[i].endsWith("a")) {
System.out.println(array[i]);
}
}
1赞
xthe_white_lionx
6/20/2022
#2
你真的需要循环三次提供相同的数组吗?
尝试更频繁地使用变量。提醒每个都是对数组的访问,与
array[i]
array[i].length()
name.endsWith("a")
如果您正在查看循环数组中的名称,则不正确,它应该是这样array[i].endsWith("a")
String[] array = new String[10]; Scanner sc = new Scanner(System.in); System.out.println("ENTER THE NAMES"); String name = sc.nextLine(); String shortest = name; String longest = name; for (int i = 0; i < array.length; i++) { array[i] = sc.nextLine(); String currentName = array[i]; int length = currentName.length(); if (longest.length() < length) { longest = currentName; } if (shortest.length() > length) { shortest = currentName; } if (currentName.endsWith("a")) { System.out.println(currentName); } } System.out.println(); System.out.println("LONGEST NAME: " + longest); System.out.println("SHORTEST NAME: " + shortest);
评论