0

我正在用java编写这段代码来扫描数字或字母字符串,看看它们是否是连续的。一切似乎都运行良好,直到我尝试在其中放置一个布尔值以返回 true 或 false,但什么都没有发生!我错过了什么?谢谢!:)

这里是:

public class Question1 {
  public static void main(String[]args){
    String s = "gFeD";
    isConsecutive(s);
  }
    public static boolean isConsecutive(String s){
      boolean letters;
      letters = false;
      int counter = 0;
      String newS = s.toLowerCase();
      for (int i = 0; i < newS.length() - 1; i++){
        if (newS.charAt(i) - newS.charAt(i+1) == 1){
          return true;
      } else if (newS.charAt(i) - newS.charAt(i+1) == -1) {
        return true;
      }
     }
      return letters;
    }
   }
4

4 回答 4

4
  for (int i = 0; i < newS.length() - 1; i++){
    if (newS.charAt(i) - newS.charAt(i+1) == 1){
      return true;
  } else if (newS.charAt(i) - newS.charAt(i+1) == -1) {
    return true;
  }

这不是你所追求的。

  • 您不想从 for 循环中返回true。除非您发现订单未得到维护,否则不会。否则你会回来太早。另一方面,如果您发现订单实际上已关闭,则返回 false 是可以的。
  • 您不想检查 char - otherchar == 1 或 -1 是否过于严格。您想查看 > 0 或 < 0。
于 2013-10-13T03:44:44.547 回答
3

您没有对返回值做任何事情。如果您想在控制台上看到它,请执行System.out.println(isConsecutive(s));. 这就是为什么“什么都没有发生”。在您编写它时它运行正常;它只是不会产生任何可见的输出。

于 2013-10-13T03:43:00.307 回答
1

只需将 main 方法的最后一行替换为 System.out.println(isConsecutive(s));. 这应该有效。

于 2013-10-13T03:58:34.587 回答
0

您没有打印任何内容,请尝试System.out.println(isConsecutive(s));

于 2013-10-13T03:44:10.863 回答