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

好的,我要再打赌:您要比较的字符串作为命令行参数传递。但是命令行参数由 shell 扩展(至少在 Unix/Linux 等上)。例如,单个星号将扩展为当前目录中的文件列表。您的 Java 程序(甚至 JVM)没有机会看到原始输入星号。

在进行比较之前打印您的字符串。如果我的猜测是正确的,请将命令行参数括在引号中以避免 shell 扩展。

于 2012-11-02T15:09:12.260 回答