電子名片字段的格式爲KEY[;Attribute]:VALUE[;ATTRIBUTE]
。它看起來像X-CUSTOMFIELD中的拼寫錯誤,應爲X-CUSTOMFIELD:5555
然後,您可以在每行上使用line.split(":")
以獲取鍵和值。
編輯
首先我想從文件中讀取/消息的所有行,並將它們存儲在哈希表鍵/值巴黎(HashMap的是不是可以在Android ..)。使用上面提到的拆分功能將行分割爲一個鍵和一個值部分。
完成此操作後,簡單地詢問哈希表中鍵「X-CUSTOMFIELD」的值,並返回「5555」。 (假設,您更正了vcard格式,我仍然認爲X-CUSTOMFIELD行無效!)
編輯2
如果電子名片允許重複鍵,則仍然可以使用一個散列表作爲內部電子名片模型,但該值應是一個List<String>
類型而不是一個String
和電子名片值被添加到這份名單中,像:
Hashtable<String, List<String>> vcard = new Hashtable<String, List<String>>();
for (String line:lines) { // assuming lines is an array or collection with all rows
String keyValuePair = line.split(":");
List<String> values = vcard.get(keyValuePair[0]);
if (values == null) {
// first value for this key - need to create the list
values = new ArrayList<String>();
vcard.put(keyValuePair[0], values);
}
values.add(keyValuePair[1]);
}
(未經測試 - 如果它不編譯,把它當作僞代碼;-))
這個問題可能是有趣的你:http://stackoverflow.com/questions/672704/where-to-find-a-java-library-to-read-vcard-files – 2010-05-26 11:57:00