关于java的一些编译问题。大家一定要帮帮我呀。感谢了
来源:百度知道 编辑:UC知道 时间:2024/06/02 03:43:59
我编译的时候是正确的,看看下面的一些例子:
public class math2
{
public static void main(String[] args)
{
byte[] b={1,2,3};
String str=new String(b);
System.out.println(str);
}
}
编译的是正确的,但是运行的时候就出现了一些图案:
E:\Java lesson\book>javac math2.java
E:\Java lesson\book>java math2
E:\Java lesson\book>
并不是输出的是123呢,我有点纳闷了,是不是环境变量出错了呢,求求大家帮帮我呀,
public class math2
{
public static void main(String[] args)
{
byte[] b={1,2,3};
String str=new String(b);
System.out.println(str);
}
}
编译的是正确的,但是运行的时候就出现了一些图案:
E:\Java lesson\book>javac math2.java
E:\Java lesson\book>java math2
E:\Java lesson\book>
并不是输出的是123呢,我有点纳闷了,是不是环境变量出错了呢,求求大家帮帮我呀,
byte[] b={49,50,51};
String str=new String(b);
System.out.println(str);
这样就可以了 你上面程序得到的是ascii码为1 2 3 所代表的字符组合
我刚写的一个方法不知道是不是你想要的
public class math2
{
public static final String arrayToString(byte[] bytes)
{
StringBuffer buff = new StringBuffer();
for (int i = 0; i < bytes.length; i++)
{
buff.append((char)bytes[i]);
}
return buff.toString();
}
public static void main(String[] args)
{
byte[] b={'1','2','3'};
String str =arrayToString(b);
System.out.println(str);
}
}
这个问题嘛
字符串的构造函数String(byte[] b)是将byte数组中的每一项对应的ascii码字符组成新的字符串
1,2,3所对应的ascii码都是控制字符,无法显示,所以是乱码。
程序行为是正常的, 只是跟你想的不一样. 其实是你想错了. 去问老师吧.
大哥 你疯了。。