1

前述のように、 に等しい文字列を探すにはどうすればよい*ですか?

私はこれを試しました:

if (string.equals("*")) {
    return message;
}

ifプログラムはステートメントに入らないだけです。どこで間違ったのか分かりますか?

4

3 に答える 3

1

このコードは正常に動作します。以下のコードは"happy"コンソールに戻ります。.equal文字列で for を使用しても問題はありません*

 public class NumberFun {
    static String string = "*";
    static String message = "happy";

    public static void main(String args[]) {
        System.out.println(getMessage());
    }

    private static String getMessage() {
        if (string.equals("*")) {
            return message;
        }
        return "fail";
    }
}
于 2012-11-02T15:01:01.520 に答える
0

Stringスペースがあるかもしれません。応募してみますtrim()

if(string.trim().equals("*")){
        return message;
    }

次に例を示します。

String mytem ="*";

     if(mytem.equals("*"))
     {
         System.out.println("Hello");
     }

出力:

Hello
于 2012-11-02T14:58:13.177 に答える
0

OK、別の賭けをします。比較しようとしている文字列は、コマンド ライン引数として渡されます。ただし、コマンドライン引数はシェルによって展開されます (少なくとも Unix/Linux などでは)。たとえば、単一のアスタリスクは、現在のディレクトリ内のファイルのリストに展開されます。Java プログラム (および JVM でさえも) は、元の入力アスタリスクを見る機会がありません。

比較を行う前に文字列を出力します。私の推測が正しい場合は、コマンド ライン引数を引用符で囲み、シェルの拡張を回避してください。

于 2012-11-02T15:09:12.260 に答える