检查数组是否只是一个字母

时间:2019-05-06 12:12:54

标签: java split

我要检查输入的字符是否只有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的范围

2 个答案:

答案 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"); 
    }
}

这应该适合您想要实现的目标