如何使用Unicode将日语与英语分开

时间:2013-10-21 02:03:19

标签: java string unicode

我有一个字符串变量,它是一个包含英语和日语单词的段落。 我想将日语与英语分开。

所以我使用Unicode来判断字符是否属于\ u + 0000~ \ u + 007F(基本拉丁语unicode)

但我不知道如何编写Java代码以将char转换为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;
     }
}

1 个答案:

答案 0 :(得分:1)

假设您拥有的字符串是16位Unicode,并且您没有尝试使用完整的Unicode,则可以使用:

if ('\u0000' <= c && c <= '\u007f')
        { // c is English }
   else { // c is other }
但是,我不知道这完全符合您的要求。例如,该范围内的许多角色实际上都是标点符号。我找到了一组Unicode字符的引用here,这些字符是罗马和“半角汉字”的混合。请注意,实际区分可能代表英文字母的所有Unicode字符和所有其他字符可能并不简单,这取决于您的环境。