比较等于星号的字符串

时间:2012-11-02 14:57:10

标签: java string comparison

如上所述,我如何查找等于*的字符串?

我试过这个:

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

该程序不会进入if语句。我能知道我哪里出错吗?

3 个答案:

答案 0 :(得分:1)

此代码工作正常,下面的代码将"happy"返回到控制台,在.equal的字符串上使用*没有任何问题。

 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";
    }
}

答案 1 :(得分:0)

我猜你的String可能有空格。我会尝试申请trim()

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

以下是示例:

String mytem ="*";

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

输出:

Hello

答案 2 :(得分:0)

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

在进行比较之前打印您的String。如果我的猜测为真,请将命令行参数括在引号中以避免shell扩展。