所以我的指示如下:
编写代码以打印2个字符的字符串passCode中任何空格的位置。检测到的每个空格均应打印单独的语句,后跟换行符。给定程序的示例输出: 空格为1
我当前编写的代码是:
import java.util.Scanner;
public class FindSpaces {
public static void main (String [] args) {
String passCode = "";
passCode = "A ";
if (Character.isWhitespace(passCode.charAt(0))){
System.out.println("Space at " +passCode.indexOf(" "));
}
else if (Character.isWhitespace(passCode.charAt(1))){
System.out.println("Space at " +passCode.indexOf(" ", 1));
}
else{
}
return;
}
}
现在这有时可以工作,但是如果我的输入中有多个空格,那么它只会打印一行。如果对任何人都有用,它来自zyBooks,我不知道如何使它带有显示第二个空格的第二行。
答案 0 :(得分:1)
虽然长度可能限制为两个,但我仍然猜测for循环会更合适:
String passCode = "";
passCode = " ";
for (int i = 0; i < passCode.length(); i++) {
if (passCode.charAt(i) == ' ') {
System.out.println("Whitespace at index " + (i + 1));
}
}
查看您的解决方案:您的代码不能多次输入任何输出。您拥有if()else()-只需删除else,就可以了:
String passCode = "";
passCode = " ";
if (Character.isWhitespace(passCode.charAt(0))) {
System.out.println("Space at " + passCode.indexOf(" "));
}
if (Character.isWhitespace(passCode.charAt(1))) {
System.out.println("Space at " + passCode.indexOf(" ", 1));
}
答案 1 :(得分:1)
这样做的时候
if ( condition1 ) {
doSomething();
}
else if ( condition2 ) {
doSomethingElse();
}
else
意味着如果condition2
为假,则您将仅测试doSomethingElse()
(因此只有一个机会调用condition1
)。您只需要从代码中删除该else
。
答案 2 :(得分:0)
要查找并打印字符串中每个空格的位置,只需遍历字符串并检查当前字符是否为空格:
String str = "Find the space location";
for(int i = 0; i < str.length(); i++) {
if(Character.isWhitespace(str.charAt(i)) {
System.out.println("Space at " + i);
}
}