空白位置查找

时间:2018-11-16 17:19:53

标签: java whitespace

所以我的指示如下:

  

编写代码以打印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,我不知道如何使它带有显示第二个空格的第二行。

3 个答案:

答案 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);
  } 
}