如何解决如何正确编写if语句将字符串解析为char,java
我正在用Java的boolean方法进行编码,以验证用户输入是否正确。如果键入的第一位字母是字母A-D,键入的第二位字母是1-4(例如B3),则是正确的。设置if语句时,它们旁边出现错误,提示“对于参数类型char,boolean,运算符==未定义”。我无法弄清楚我在做什么错。这是代码段。
+=
请原谅我的无知,因为我是一名新手,并且不了解所有术语
解决方法
可以使用使用正则表达式的字符串方法_
:
import re
string = 'rename_file_1122--23-_12'
name_parts = re.findall(r'[^\W_]+|[\W_]+',string)
print(name_parts)
# => ['rename','_','file','1122','--','23','-_','12']
其中matches
-启用不区分大小写的匹配private static boolean isValid(String s) {
return null != s && s.matches("(?i)[A-D][1-4]");
}
-范围为(?i)
的单个字母,后跟范围为[A-D][1-4]
的单个数字
您必须在if
语句中指定两个变量或常量。您可以将对与逻辑运算符(例如AND(&&&)或OR(||))连接。
您不需要测试String是否为大写。如果字母已经是大写,则将其转换为大写不会有任何改变。
这是您的方法。
public static boolean isValid(String s) {
if (s.length() < 2) {
s = s.toUpperCase();
if (s.charAt(0) >= 'A' && s.charAt(0) <= 'D') {
if (s.charAt(1) >= '1' && s.charAt(1) <= '4') {
return true;
}
}
}
return false;
}
,
即使现在提供了两种解决方案,我也没有看到其中的任何一个解释为什么有问题。因此,我想解释一下:问题是您编写if语句的方式。当您说if (s.charAt(0) == 'A' <= 'D')
时,if感觉就像在比较一个字符和一个布尔值。因为'A'
话虽如此,您可以使用&&
并检查您的字符是否为char >= A && char <= D
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。