如上所述,我如何查找等於*
的字符串?比較等於星號的字符串
我已經試過這樣:
if (string.equals("*")) {
return message;
}
程序只是不會進入if
聲明。我能知道我哪裏錯了嗎?
如上所述,我如何查找等於*
的字符串?比較等於星號的字符串
我已經試過這樣:
if (string.equals("*")) {
return message;
}
程序只是不會進入if
聲明。我能知道我哪裏錯了嗎?
此代碼工作正常,下面的代碼返回"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";
}
}
奇怪,讓我去調試,看看哪裏出錯了。謝謝大衛:) – melyong
好的,我打算再次打賭:您試圖比較的字符串作爲命令行參數傳遞。但命令行參數由shell擴展(至少在Unix/Linux等)。例如,單個星號將展開爲當前目錄中的文件列表。您的Java程序(甚至JVM)沒有機會看到原始輸入星號。
在比較之前打印字符串。如果我的猜測是真的,請將命令行參數括在引號中以避免shell擴展。
*沒有這樣的東西*作爲「if-loop」。爲什麼不在調試器中檢查'string'的值是否真的只包含'*'? – Adam
'if(「*」。equals(「*」)){...}'對我來說工作得很好。 'string'包含在你的情況中的是什麼? – Lion
如果您沒有將星號作爲命令行參數傳遞(請參閱我的回答),請發佈一個工作(或者說是一個可編譯但是「問題暴露」)程序。 – Axel