如上所述,我如何查找等于*
的字符串?
我试过这个:
if (string.equals("*")) {
return message;
}
该程序不会进入if
语句。我能知道我哪里出错吗?
答案 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扩展。