java 中常用汉字 的unicode 码范围是多少到多少
答案:4 悬赏:80
解决时间 2021-04-27 10:24
- 提问者网友:巴黎塔下许过得承诺
- 2021-04-27 06:31
java 中常用汉字 的unicode 码范围是多少到多少
最佳答案
- 二级知识专家网友:随心随缘不随便
- 2021-04-27 08:03
Unicode CJK 的范围分布在多个区段中,带有 CJK 的区块名中都拥有汉字。但最常用的范围是 U+4E00~U+9FA5,即名为:CJK Unified Ideographs 的区块,但 U+9FA6~U+9FFF 之间的字符还属于空码,暂时还未定义,但不能保证以后不会被定义。
在正则表达式中使用 [\u4e00-\u9fa5] 这种方式属于写死的代码,并不能根据平台所提供的字符集范围不同而改变,不过对于要求不是很高的话的是可以了。如果对字符集的要求很高,可以采用下面的这种 Unicode 块的方式:
String regex = "[\\p{InCJK Unified Ideographs}&&\\P{Cn}]]";
在当前的 JDK 版中与 [\u4e00-\u9fa5] 的意义一致。但这样可以匹配 Java 平台所支持Unicode 块名为 CJK Unified Ideogrpahs 中已定义的字符,这种方式就属于“活”代码今后的 JDK 版本升级了,定义到了 \u9fa6 的字符,同样能够满足匹配。
在正则表达式中使用 [\u4e00-\u9fa5] 这种方式属于写死的代码,并不能根据平台所提供的字符集范围不同而改变,不过对于要求不是很高的话的是可以了。如果对字符集的要求很高,可以采用下面的这种 Unicode 块的方式:
String regex = "[\\p{InCJK Unified Ideographs}&&\\P{Cn}]]";
在当前的 JDK 版中与 [\u4e00-\u9fa5] 的意义一致。但这样可以匹配 Java 平台所支持Unicode 块名为 CJK Unified Ideogrpahs 中已定义的字符,这种方式就属于“活”代码今后的 JDK 版本升级了,定义到了 \u9fa6 的字符,同样能够满足匹配。
全部回答
- 1楼网友:萌萌哒小可爱
- 2021-04-27 09:37
这个还真不好说得,UTF-8编码和GBK编码是不一样的。只知道是16位表示的,最大65535
- 2楼网友:浪女动了心
- 2021-04-27 08:33
你好 java代码大致如下:
string s1 ="";
string [] s2 = new string[]{"6211","7231","7956","56fd"}; for (int i=0;i<s2.length;i++){ int a = integer.parseint(s2[i],16); s1=s1+(char)a; } system.out.println(s1);
- 3楼网友:滚出爷的世界
- 2021-04-27 08:26
常用汉字 的unicode 码范围是:\u4e00-\u9fa5,下面一个例子是把中英文文档中的汉字提取出来的简单例子:
public class DrawEnglish
{
private static String draw(String content)
{
StringBuffer english = new StringBuffer();
String regex = "[\u4e00-\u9fa5。,?”“《》:!——-、]";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(content);
while(matcher.find())
{
String temp = matcher.group();
english.append(temp);
}
return english.toString();
}
public static void drawEnglish(String path)
{
FileInputStream fr;
BufferedReader br;
FileWriter fw;
BufferedWriter bw = null ;
try
{
fr = new FileInputStream(path);
br = new BufferedReader(new InputStreamReader(fr,"gb2312"));
fw = new FileWriter("new1.txt");
bw = new BufferedWriter(fw);
String str = null;
StringBuffer sb = new StringBuffer();
while((str = br.readLine()) != null)
{
sb.append(str + "\n");
}
String temp = draw(sb.toString());
bw.write(temp);
} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
if(bw != null) bw.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
public static void main(String[] args)
{
drawEnglish("draw1.txt");
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯