我有一个字符串变量,它是一个包含英语和日语单词的段落。 我想将日语与英语分开。
所以我使用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;
}
}
答案 0 :(得分:1)
假设您拥有的字符串是16位Unicode,并且您没有尝试使用完整的Unicode,则可以使用:
if ('\u0000' <= c && c <= '\u007f')
{ // c is English }
else { // c is other }
但是,我不知道这完全符合您的要求。例如,该范围内的许多角色实际上都是标点符号。我找到了一组Unicode字符的引用here,这些字符是罗马和“半角汉字”的混合。请注意,实际区分可能代表英文字母的所有Unicode字符和所有其他字符可能并不简单,这取决于您的环境。