2013-10-21 53 views
1

我有一個字符串變量,它是一個包含英語和日語單詞的段落。 我想從英語中分割日語。如何使用Unicode從英語中分割日語

所以我使用Unicode來確定該字符是否屬於\ U + 0000〜\ U + 007F(基本拉丁語Unicode)的

但我不知道如何寫Java代碼到字符轉換爲unicode,以及如何比較unicode。

任何人都可以給我一個樣本?

public void split(String str){ 
    char[]cstr=str.toCharArray(); 
    String en = ""; 
    String jp = ""; 
    for(char c: cstr){ 
     //(1) To Unicode? 
     //(2) How to check whether fall into \u0000 ~ \u007F 
     if(is_en) en+=c; 
     else jp+=c; 
    } 
} 
+0

看看http://stackoverflow.com/questions/2220366/get-unicode-value-of-a-character –

+1

這隻會告訴你,如果它是英文/日文_characters_。如果你必須處理[romaji](http://en.wikipedia.org/wiki/Romaji)怎麼辦? –

+0

英語單詞如「fiancé」,「rôle」,「coöoperation」和「belovèd」怎麼樣?你應該解釋你打算如何使用你從這種分裂中得到的信息。如果你真的只使用*詞*(你能確定嗎?),那麼你可以將它們分類爲用拉丁字母和假名或漢字寫成的詞。要檢查他們是否真的是英語或日語的話,你需要字典等等。 –

回答

1

假設你有串是16位Unicode,而且你是不是要到完整的Unicode,您可以使用:

if ('\u0000' <= c && c <= '\u007f') 
     { // c is English } 
    else { // c is other } 

我不知道,但是,這確實是你想要的。例如,該範圍中的許多字符實際上都是標點符號。我找到了一組參考文獻here給一組Unicode字符,這些字符是羅馬語和「半角漢字」的混合體。請注意,實際區分所有可能代表英文字母的Unicode字符以及所有其他字符可能不是這麼簡單,它將取決於您的環境。

相關問題