配列がちょうど1つの文字であるかどうかを確認

ナジブ・ラザク:

私は以下の私のコードは、入力のみ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"); 
    }

使用しようとしました

== ""

しかしdoesntの仕事.. :(、およびこのエラーを得た--->インデックス1は、範囲外の長さが1のために

TheWhiteRabbit:

配列のインデックスは、ゼロベースであり、文字列の比較は、「等しい」を使用して行われるべきです。

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

あなたのキーワードが実際にあなたのデータで2番目の「フィールド」であるという事実に依存している場合は、あなたのデータが実際に少なくとも2つのフィールドが含まれているかどうかを確認するために、追加のチェックを追加する必要があります:

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

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=332764&siteId=1