当前位置: 代码迷 >> Java相关 >> 如何能够得到一个String 有多少个byte呢?也就是这个string的大小
  详细解决方案

如何能够得到一个String 有多少个byte呢?也就是这个string的大小

热度:140   发布时间:2007-09-03 10:58:40.0
如何能够得到一个String 有多少个byte呢?也就是这个string的大小
如何能够得到一个String 有多少个byte呢?也就是这个string的大小?
例如 string a="subject contains \"刘杨天才\""
那么这个a该有 33个byte。
我如何能得到这个大小呢?
搜索更多相关的解决方案: byte  String  string  

----------------解决方案--------------------------------------------------------
LZ的问题描叙不够清楚,
1. 楼主想问的是String对象所占的内存
2. 还是想问String所表示的字符串用byte数组表示后所占的字节数?

如果是想问第一个问题,则回答有些麻烦.
如果是第二个问题,楼主可以使用String的getBytes()方法得到这个byte数组,然后就知道其大小了..
----------------解决方案--------------------------------------------------------

我是要这个字节数 版主能给点详细的代码吗?


----------------解决方案--------------------------------------------------------
str.getBytes().length
----------------解决方案--------------------------------------------------------
恩恩~应该是
Byte.SIZE * str.getBytes().length

----------------解决方案--------------------------------------------------------
LZ问的是
字节数

而不是bit数
----------------解决方案--------------------------------------------------------

都是人才


----------------解决方案--------------------------------------------------------
以下是引用Eastsun在2007-9-3 11:24:16的发言:
LZ的问题描叙不够清楚,
1. 楼主想问的是String对象所占的内存
2. 还是想问String所表示的字符串用byte数组表示后所占的字节数?

如果是想问第一个问题,则回答有些麻烦.
如果是第二个问题,楼主可以使用String的getBytes()方法得到这个byte数组,然后就知道其大小了..

恩。对地。哈哈。。String对象所占的内存要看你是采用了什么编码系统对UNICODE字符串进行了编码,采用不同的编码方案,所占的内存就不同,虽然JAVA把字符都当作UNICODE字符,但是编码要依赖操作系统的ANSI编码。比如中文操作系统是GBK编码,而英文是ISO8859-1,日文是JIS编码。所以当纯的占用多少内存是没有意义的。呵呵。


----------------解决方案--------------------------------------------------------
以下是引用狂放不羁在2007-9-3 15:42:35的发言:

恩。对地。哈哈。。String对象所占的内存要看你是采用了什么编码系统对UNICODE字符串进行了编码,采用不同的编码方案,所占的内存就不同,虽然JAVA把字符都当作UNICODE字符,但是编码要依赖操作系统的ANSI编码。比如中文操作系统是GBK编码,而英文是ISO8859-1,日文是JIS编码。所以当纯的占用多少内存是没有意义的。呵呵。

我不是指这个意思.
JAVA String内部用的是UTF-16编码,用char[]保存

但是一个对象占多少内存还与很多因素有关,比如String对象的大小不仅仅指它表示字符串所占空间的大小.
在C/C++中可以使用sizeof()操作符来得到一个对象的大小,但在JAVA中没有直接的方法来得到它.

这儿有篇文章介绍了如何在JAVA中实现sizeof的功能:
http://www.javaworld.com/javaworld/javaqa/2003-12/02-qa-1226-sizeof?page=1


----------------解决方案--------------------------------------------------------
蛙蛤蛤蛤蛤
我这算不算灌水。。。

----------------解决方案--------------------------------------------------------
  相关解决方案