我要检查输入的字符是否只有1个字母或大于1, 下面是我的代码
public ResponseEntity<String> moReceiver(@RequestParam("data")String data)
String[]subKeyword=data.split(" ");
String subKwd=subKeyword[1];
if(subKwd =="")
{
System.out.println("One letter");
}
else
{
System.out.println("More than One letter");
}
试图使用
==“”
但不起作用.. :(,并收到此错误 --->索引1超出长度1的范围
答案 0 :(得分:4)
数组索引从零开始,并且字符串比较应使用“等于”进行。
String subKwd = subKeyword[0];
if(subKwd.equals("")){
System.out.println("Zero letters");
}
或者您也可以检查字符串的大小:
if(subKwd.length() == 0){
System.out.println("Zero letters");
} else if(subKwd.length() == 1){
System.out.println("One letter");
} else {
System.out.println("More letters");
}
如果您依靠关键字确实是数据中的第二个“字段”这一事实,则需要添加额外的检查以查看您的数据是否确实包含至少两个字段:
String[] subKeyword = data.split(" ");
if(subKeyword.length > 1){
String subKwd = subKeyword[1];
if(subKwd.length() == 0){
System.out.println("Zero letters");
} else if(subKwd.length() == 1){
System.out.println("One letter");
} else {
System.out.println("More letters");
}
} else {
System.out.println("No subkeyword present in data");
}
答案 1 :(得分:1)
通常,您不想在字符串中使用==。您应该使用equals方法。另外,还有一个可以在Strings上使用的名为length()的函数。
public ResponseEntity<String> moReceiver(@RequestParam("data")String data)
if (data != null){
if(data.length() == 1)
{
System.out.println("One letter");
}
else
{
System.out.println("More than One letter");
}
}
这应该适合您想要实现的目标