2 回答

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
為此,您不需要額外的數(shù)組。您可以argument通過將結(jié)果與Character.toLowerCase(char)like進(jìn)行比較來檢查是否是小寫
char argument = argumentStr.charAt(0);
boolean acceptArgument = argument == Character.toLowerCase(argument);
或(如@JBNizet 所指出的)使用Character.isLowerCase(char)像
boolean acceptArgument = Character.isLowerCase(argument);
如果您還需要測試該字符是否為字母,您可以添加一個(gè) and 之類的
boolean acceptArgument = Character.isLetter(argument)
&& Character.isLowerCase(argument);

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊
我理解為什么它不起作用,因?yàn)榕c acceptArgument 布爾值相比 if 語句的范圍
不。原因不是范圍,而是因?yàn)樵诿看蔚?,在完成整個(gè)循環(huán)之前都在acceptArgument獲取false或true基于 if 條件,因?yàn)閎reak在找到匹配項(xiàng)時(shí),您沒有使用任何或任何內(nèi)容退出循環(huán)。
例如,如果argument = 'p',它將在 處找到匹配項(xiàng)letter='p',因此acceptArgument將設(shè)置為true。然而,循環(huán)前進(jìn)到下一個(gè)字母q,因?yàn)閜 != q,acceptArgument將被設(shè)置為false并繼續(xù)這樣。這就是為什么它沒有按您的預(yù)期工作。
請參閱下面的更正
要更正您的代碼,請進(jìn)行以下修改
首先初始化;
boolean acceptArgument=false;
第二次刪除else它應(yīng)該是這樣的
for (char letter: lowerCaseAlphabet) {
if (argument == letter)
acceptArgument = true;
}
有用。
添加回答
舉報(bào)