本人要做一些字符串处理,奈何基础太差,想一次性向各位达人求教一下转换函数:
1。汉字(或任意字符)转 二进制(01010...) 表示
2。汉字转 十六进制 (如果第一步成功了,实际上就是二进制到16进制互转)
3。汉字对应的GBK编码。 例如每个汉字转成两位(2Byte 即 16bit),这两位的 十六进制(或二进制)表示。
4。汉字的字符对应的数值,例如:
String str1 = "中国 ";
char[] strChars = str1.toCharArray();
for(int i=0;i <strChars.length;i++){
System.out.print((int)strChars[i]);
}
得到的结果是:
20013
22269
这里得到的整数是什么值?(因为我知道,对于ascii码表中的字符,char的整数值对应的就是ASCII码值,例如 'a ' 对应的int 值是97 。但是上述例子中得到的数值是什么?
综上,谢谢!
------解决方案--------------------
1. String str1 = "中国 ";
char[] strChars = str1.toCharArray();
for(int i=0;i <strChars.length;i++){
System.out.println(Integer.toHexString((int)strChars[i]));//16进制
System.out.println(Integer.toBinaryString((int)strChars[i]));//二进制
}
3. String str1 = "中国 ";
byte[] b=str1.getBytes( "gbk ");
for(int i=0;i <b.length;i++){
System.out.println(Integer.toHexString(b[i]));
System.out.println(Integer.toBinaryString(b[i]));
}
4. 显示的是汉字unicode编码
------解决方案--------------------
楼上回答得很正确,想插一句都不知道还有什么没说。
------解决方案--------------------
将 grant999 的第三个改一下:
for (int i = 0; i < b.length; i++) {
int tmp = b[i] & 0xff;
System.out.println(Integer.toHexString(tmp));
System.out.println(Integer.toBinaryString(tmp));
}
------解决方案--------------------
4. 显示的是汉字unicode编码的十进制形式。2 出来的是十六进制形式的,是标准的 Unicode 编在码。
------解决方案--------------------
学习.........
------解决方案--------------------
void find(String src){//src为字段字符串
String p= "[\\W&^\\u4e00-\\u9fa0] ";
Pattern pp=Pattern.compile(p);
Matcher m=pp.matcher(src);
while(m.find()){
System.out.println(m.group());
}
}
------解决方案--------------------
我基础不好 请问
以\\u开头的是什么东西啊?
------解决方案--------------------
表示转义
字符的unicode码
------解决方案--------------------
沒碰過此問題,也進來學習一下。