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 に答える