2 回答
TA贡献1788条经验 获得超4个赞
为此,您不需要额外的数组。您可以argument通过将结果与Character.toLowerCase(char)like进行比较来检查是否是小写
char argument = argumentStr.charAt(0);
boolean acceptArgument = argument == Character.toLowerCase(argument);
或(如@JBNizet 所指出的)使用Character.isLowerCase(char)像
boolean acceptArgument = Character.isLowerCase(argument);
如果您还需要测试该字符是否为字母,您可以添加一个 and 之类的
boolean acceptArgument = Character.isLetter(argument)
&& Character.isLowerCase(argument);
TA贡献1806条经验 获得超5个赞
我理解为什么它不起作用,因为与 acceptArgument 布尔值相比 if 语句的范围
不。原因不是范围,而是因为在每次迭代中,在完成整个循环之前都在acceptArgument获取false或true基于 if 条件,因为break在找到匹配项时,您没有使用任何或任何内容退出循环。
例如,如果argument = 'p',它将在 处找到匹配项letter='p',因此acceptArgument将设置为true。然而,循环前进到下一个字母q,因为p != q,acceptArgument将被设置为false并继续这样。这就是为什么它没有按您的预期工作。
请参阅下面的更正
要更正您的代码,请进行以下修改
首先初始化;
boolean acceptArgument=false;
第二次删除else它应该是这样的
for (char letter: lowerCaseAlphabet) {
if (argument == letter)
acceptArgument = true;
}
有用。
添加回答
举报