java如何将来自jtextfield(.getText())的字符串输入与另一个string[]数组进行比较+少数条件
我需要说的是,如果在点击按钮时输入(文本字段)为空,则打印一条消息。如果输入中的一个字符不等于“legal”列表中的一个元素,则打印另一条错误消息。如果输入中的所有字符都很好,则将它们添加到某个列表中并打印消息msg
String[] legal={"a", "b", "c", "d" ,"e" ,"f" ,"g" ,"h" ,"i" ,"j" ,"k" ,"l" ,"m"
,"n","o","p","q","r","s","t","u","w","x","y","z","-","_"};
if(e.getSource() == add){
if (txt.getText().equals("")){
content.removeAll();
content.add(empty);
content.revalidate();
}
String[] splited = txt.getText().toLowerCase().split("");
for (int t=0;t<splited.length;t++) {
for (int u=0;u<legal.length;u++){
if(splited[t] != legal[u]){
content.removeAll();
content.add(check);
content.revalidate();
}
else if(splited[t].equals( legal[u])){
content.removeAll();
list.add(txt.getText());
content.add(msg);
content.revalidate();
}
}
}
}
# 1 楼答案
让我们暂时把UI从等式中去掉
测试一个^ {< CD1>}是否为空,您有许多选项,基于您认为空^ ^ {CD1>}的选项,例如…
当删除前导空格和尾随空格时,将捕获
String
值为null
或长度为0
的情况要检查
String
是否包含有效的字符集,使用API提供的正则表达式功能会简单得多,例如将匹配
a
和z
之间的所有字符以及_
,-
字符。这意味着String
必须是小写;)# 2 楼答案
代码中的问题如下:
不能使用
==
和!=
来比较字符串。相反,您必须检查:此外,您的逻辑可以简化为一种情况和另一种情况:
也就是说,有更简单的方法可以做到这一点。例如,您可以通过使用^{} 直接访问字符,而无需使用} 直接将
split("")
。还可以使用^{String
转换为char[]
然而,你对
String
的使用普遍过度(例如,你的String[]
可能真的是char[]
)您也可以非常轻松地使用正则表达式,而不需要所有这些} ,例如:
String
数组和拆分,请参见^{