帮忙解释一下红色部分的代码 String s="中文"; String[] ss=new String[s.length()]; for(int i=0;i<s.length();i++) { System.out.println((int)s.charAt(i)); ss[i]=Integer.toHexString((int)s.charAt(i) & 0xffff); System.out.println(ss[i]); } 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Java codeString s="中文"; String[] ss=newString[s.length()];for(inti=0;i<s.length();i++) { System.out.println((int)s.charAt(i)); ss[i]=Integer.toHexString((int)s.charAt(i)&0xffff); System.out.println(ss[i]); }没上色 ss[i]=Integer.toHexString((int)s.charAt(i) & 0xffff)就是这部分, ss[i]=Integer.toHexString((int)s.charAt(i)&0xffff);应该是转换成对应的16进制表示 static String toHexString(int i) 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。 ss[i]=Integer.toHexString((int)s.charAt(i) & 0xffff) s.i位转为int,与上0xffff ,转为16进制s="中文" = \u4e2d\u6587200134e2d259916587 为什么 与上0xffff就转为16进制了、? Integer.toHexString它的作用。你把int)s.charAt(i) & 0xffff直接输出一下看看 不用与0xffff的吧ss[i]=Integer.toHexString((int)s.charAt(i))也OK的啊。 我知道是一个16进制表示0xXXXX我只是不知道它如何运算的, 转换成16进制的不是跟0xffff进行的与操作,不信,你算一下32&0xffff,结果还是32,这个与操作是为了把高位截断,因为int的长度是是32位,char长度是16位,具体的你运行一下这个程序就知道了public class test{ public static void main(String[] args) { System.out.println(Integer.toHexString(-32)); System.out.println(Integer.toHexString(-32 & 0xffff)); System.out.println(Integer.toBinaryString(-32)); System.out.println(Integer.toBinaryString(-32 & 0xffff)); }} toHexString(int i) 以十六进制的无符号整数形式返回一个整数参数的字符串表示形式。 谁能给我解释一下JAVA匿名内部类(csdn头一贴,请多关照) 请教toCharArray()函数 Java JList中能放对象吗(比如:按钮);我刚学 java中有没有求方差的方法? 如何通过java从二进制文件中读取以前用c中fwrite函数写入的一个结构体? Java Applet 可以包含多个类吗 为什么看不到结果? 如何取得一个输出流???? 哪儿有JDK1.41下,要速度快的。 为何我安装的plug-in control panel (jdk1.3版)不能运行? JSP内引入页面后遇到的问题 dwr参数问题
String[] ss=newString[s.length()];for(inti=0;i<s.length();i++)
{
System.out.println((int)s.charAt(i));
ss[i]=Integer.toHexString((int)s.charAt(i)&0xffff);
System.out.println(ss[i]);
}没上色
就是这部分,
以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
4e2d
25991
6587
你把int)s.charAt(i) & 0xffff直接输出一下看看
ss[i]=Integer.toHexString((int)s.charAt(i))
也OK的啊。
我只是不知道它如何运算的,
{
public static void main(String[] args)
{
System.out.println(Integer.toHexString(-32));
System.out.println(Integer.toHexString(-32 & 0xffff));
System.out.println(Integer.toBinaryString(-32));
System.out.println(Integer.toBinaryString(-32 & 0xffff));
}}
以十六进制的无符号整数形式返回一个整数参数的字符串表示形式。