java中,知道一个中文字符的GBK(如BDF0),如何在System.out.println()时输出它的中文汉字? 从外部文件获取的一个中文字符的GBK(如BDF0),如何在System.out.println()时输出它的中文汉字,如BDF0的汉字是“金”?谢谢~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.io.UnsupportedEncodingException;public class Test5 { public static void main(String[] args) { String str = "BDF0"; System.out.println(toGbkChar(str)); } public static char toGbkChar(String gbkEncoding) { if(gbkEncoding == null || !gbkEncoding.matches("[0-9a-fA-F]{4}")) { throw new IllegalArgumentException("GBK encoding data error!"); } return toGbkChar(Integer.parseInt(gbkEncoding, 16)); } public static char toGbkChar(int num) { if(num < 0 || num > 0xffff) { throw new IllegalArgumentException("GBK encoding data error!"); } byte[] bys = new byte[2]; bys[0] = (byte)(num >> 8 & 0xff); bys[1] = (byte)(num & 0xff); return toGbkChar(bys); } public static char toGbkChar(byte[] bys) { if(bys == null || bys.length != 2) { throw new IllegalArgumentException("GBK encoding byte length must be 2"); } String str = null; try { str = new String(bys, "gbk"); } catch (UnsupportedEncodingException e) { throw new IllegalArgumentException("GBK encoding convert error!"); } if(str == null) { throw new IllegalArgumentException("GBK encoding convert error!"); } return str.charAt(0); }} 呀,输出是对的,看来我对汉字的各种编码还是没有很了解呀,若若问一句,这个判断if(gbkEncoding == null || !gbkEncoding.matches("[0-9a-fA-F]{4}"))是判断什么的,特别是“或”后面那一句判断。谢谢了。 正则表达式,判断gbkEncoding是否为四位的由0-9或不分大小写的a-f的字母组成 没有get方法能取到对象private字段的值吗 高人们!重构方法名前,加与不加public关键字修饰有区别吗 有人用java写过挤房器吗 java失败 怎么把字符串“31/07/2004”变成日期类型的?? 老大门介绍些java的网站或论坛 初学CVS,向大家请教一下,谢谢! 求助 除了jni外还有没其他方法可以调本地的dll 闭关修炼了 jxl合成多个表格时报错 [SWT] 如何修改 ToolItem 的背景色 和 文字的颜色. 要在JScrollPane内放置FTextPane
public static void main(String[] args) {
String str = "BDF0";
System.out.println(toGbkChar(str));
}
public static char toGbkChar(String gbkEncoding) {
if(gbkEncoding == null || !gbkEncoding.matches("[0-9a-fA-F]{4}")) {
throw new IllegalArgumentException("GBK encoding data error!");
}
return toGbkChar(Integer.parseInt(gbkEncoding, 16));
}
public static char toGbkChar(int num) {
if(num < 0 || num > 0xffff) {
throw new IllegalArgumentException("GBK encoding data error!");
}
byte[] bys = new byte[2];
bys[0] = (byte)(num >> 8 & 0xff);
bys[1] = (byte)(num & 0xff);
return toGbkChar(bys);
}
public static char toGbkChar(byte[] bys) {
if(bys == null || bys.length != 2) {
throw new IllegalArgumentException("GBK encoding byte length must be 2");
}
String str = null;
try {
str = new String(bys, "gbk");
} catch (UnsupportedEncodingException e) {
throw new IllegalArgumentException("GBK encoding convert error!");
}
if(str == null) {
throw new IllegalArgumentException("GBK encoding convert error!");
}
return str.charAt(0);
}
}
呀,输出是对的,看来我对汉字的各种编码还是没有很了解呀,若若问一句,这个判断
if(gbkEncoding == null || !gbkEncoding.matches("[0-9a-fA-F]{4}"))
是判断什么的,特别是“或”后面那一句判断。谢谢了。