区切り文字としてカンマを持つメソッドに文字列を渡しています。
"TMJ,Emma,Sarah"
分割する正規表現として「,」を使用して、この文字列をトークン化します。
次に、各要素をすべての可能な値の HashMap と比較して、トークン化された配列の長さを反復処理します。テストされている値が HashMap のキーである場合、キーの値を取得し、それを別の文字列に格納します。
キーの各値を、値を保持する文字列に追加したいと考えています。
一度だけ反復するように見え、その後ループから飛び出し、ハッシュマップで最初に見つけたものだけを返します。
誰でも理由を説明できますか?前もってありがとうマット。
public static String getrecipientIntergerValues(String recipient) {
Log.e(TAG, "recipient string list passed in to app obj = " + recipient);
String[] tokenizedRecipient = recipient.split(",");
String recipientAsInteger = "";
for(int i = 0; i < tokenizedRecipient.length; i++){
Log.e(TAG, "tokenizedRecipient = " + tokenizedRecipient[i].toString());
}
Log.e(TAG, "tokenizedRecipient length = " + tokenizedRecipient.length);
for(int i = 0; i < tokenizedRecipient.length; i++){
if(recipients.containsKey(tokenizedRecipient[i].toString())){
Log.e(TAG, "hashmap contains key " + tokenizedRecipient[i].toString() + "with value " + recipients.get(tokenizedRecipient[i].toString()));
String integerValueOfName = recipients.get(tokenizedRecipient[i].toString());
recipientAsInteger = recipientAsInteger + integerValueOfName + ",";
}
}
Log.e(TAG, "recipient list as integers = " + recipientAsInteger);
return recipientAsInteger;
}
.
09-20 16:33:51.039: E/NfcScannerApplication(25835): recipient string list passed in to app obj = Emma, TMJ,
09-20 16:33:51.039: E/NfcScannerApplication(25835): tokenizedRecipient = Emma
09-20 16:33:51.064: E/NfcScannerApplication(25835): tokenizedRecipient = TMJ
09-20 16:33:51.064: E/NfcScannerApplication(25835): tokenizedRecipient =
09-20 16:33:51.079: E/NfcScannerApplication(25835): tokenizedRecipient length = 3
09-20 16:33:51.079: E/NfcScannerApplication(25835): hashmap contains key Emmawith value 3
09-20 16:33:51.089: E/NfcScannerApplication(25835): recipient list as integers = 3,