2014-12-03 76 views
3

我的Android應用程序中有一些文本字段需要僅限於字母(可能還有一些枚舉的基本符號集,例如「._-,!」等) 。我的第一本能是使用Java isLetter函數。但我不知道這是否適合本地化 - 我的應用程序需要本地化爲日語和其他語言,Android文檔沒有提供如何工作的提示(無論isLetter是依賴於當前語言還是全部安裝語言,或只是一些Unicode字符的白名單)。我知道我不能告訴Android鍵盤不允許輸入表情符號,所以我可以在輸入文本字符串後檢查它,如果沒有問題就可以接受它,如果表情符號(或其他被檢測到)。Android文本條目驗證與本地化

在Android中有這樣一個普遍接受的方式嗎?

回答

0

isLetter應該做你需要的。這裏是一個例子:

public boolean isAlpha(String name) { 
    char[] chars = name.toCharArray(); 

    for (char c : chars) { 
     if(!Character.isLetter(c)) { 
      return false; 
     } 
    } 

    return true; 
} 

此外,日本字符仍然是字符,所以他們仍然會工作。要做到這一點的方法與編碼有關。

一個字符串只是一個字符序列(字符)。字符串本身 根本沒有編碼。對於它的價值,用上面的鴿子替換上面 中的字符。一樣。信鴿沒有 編碼。也沒有一個字符。

Check if String contains only letters

UTF-8 Encoding ; Only some Japanese characters are not getting converted

+0

做一些進一步的測試之後,它看起來像你是正確的 - isLetter不接受日本及其他語言的字符。我希望在這一點上它的文檔更加清晰,正是它接受的內容,但它現在可以工作。 – malderi 2014-12-03 20:10:45

+0

導航文檔可能相當困難。祝你好運! – 2014-12-03 20:13:10