1

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

所以我使用Unicode来决定字符是否落入\u+0000~ \u+007F(基本拉丁语unicode)

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

1 回答 1

1

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

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

但是,我不知道这完全符合您的要求。例如,该范围内的许多字符实际上是标点符号。我在这里找到了对一组 Unicode 字符的引用,这些字符混合了罗马和“半角汉字”。请注意,实际上区分可能代表英文字母的所有 Unicode 字符和所有其他字符可能不是那么简单,这取决于您的环境。

于 2013-10-21T03:00:49.693 回答