黑马程序员技术交流社区
标题:
关于字符和字节有点晕,请大家指点
[打印本页]
作者:
归☆夜↑『
时间:
2013-5-27 23:27
标题:
关于字符和字节有点晕,请大家指点
话说Java的字符占两个字节可是……且看下面
class TestByte
{
public static void main(String[] args) {
String a = "我";
String b = "a";
byte[] b1 = a.getBytes();
byte[] b2 = b.getBytes();
System.out.println("中文的byte");
for (int i =0;i<b1.length ;i++ )
{
System.out.println(b1[i]);//输出两个元素
}
System.out.println("英文的byte");
for (int i =0;i<b2.length ;i++ )
{
System.out.println(b2[i]);//输出一个元素
}
}
}
复制代码
这是何解呢!!?关于字节和字符的了解实在欠缺,请大家多多指教!!!!
作者:
Changer_s
时间:
2013-5-27 23:32
本帖最后由 Changer_s 于 2013-5-27 23:37 编辑
字符:二个字节
字节:一个字节
例:你现在要读一个汉字(以二个字节来存,既:一个字符)的“汉”。
1.用字符流读:一次读二个字节,那么你就可以完全读取到它,并存到你想存的地方。
2.用字节流读:一次读一个字节,那么你要读二次你才完全得读取到了这个汉字。不然就读取到了半个(一个汉字二个字节中的一个字节),那你说这半个(一个字节)是什么东西?我想这并不是你想要的吧。
还有一点挺有用的,就是在字符流中你可以一次读取一行(readLine()),这我想对于我们来说是一个不错的方法吧。
字符流:操作文本比较容易
字节流:其余基本都行(例如:图片,电影。。。)
为什么会是这样的应用?
比如:图片是奇数个字节,那么用字符就准确了,对吧?因为字符是偶数个字节嘛!
同理。。。。字节去解决这些未知大小的问题挺好的
当然文本相对而言:字符好一些,也就是一个汉字对应的一个字符(也就是两个字节);
作者:
ZhaoYuBetter
时间:
2013-5-27 23:59
简单的说:字节是计算机认识的,但字节只有8位,即最大为255,也就是最大只能有255个字符;
字符是我们人认识的,由于字符实在太多,所以不得不用多个字节来表示了。以满足需要!
作者:
张俊迪
时间:
2013-5-28 01:32
一个汉字占两个字节,一英语字母占一个字节,他们都是字符,汉字比较特殊,记住就行了
作者:
Super_Class
时间:
2013-5-28 09:06
你使用缓冲区的时候就该考虑了。
字符流用的缓冲区是 char []buf = new char[1024];
字节流用的缓冲区是 byte []buf = new byte[1024];
中文占两个字节是使用GBK这个码表。在utf-8中,中文占三个字节
如果你要输出的是中文,就不要转换成byte类型的。byte翻译过来就是字节。。。。
中文可以使用char [] c = a.toCharArray()将此字符串转换为一个新的字符数组。
然后再输入就可以解决了、
希望可以帮到你
作者:
归☆夜↑『
时间:
2013-5-28 16:01
了解~~多谢{:soso_e181:}
作者:
袁梦希
时间:
2013-5-30 10:41
楼主你好,如果帖子已经没问题了,那么把帖子的类型改为“已解决”。如果不会改看我的个性签名
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2