| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9537 人关注过本帖
标题:如何能够得到一个String 有多少个byte呢?也就是这个string的大小
只看楼主 加入收藏
lewis0323
Rank: 2
等 级:新手上路
威 望:3
帖 子:102
专家分:0
注 册:2006-7-20
收藏
 问题点数:0 回复次数:14 
如何能够得到一个String 有多少个byte呢?也就是这个string的大小
如何能够得到一个String 有多少个byte呢?也就是这个string的大小?
例如 string a="subject contains \"刘杨天才\""
那么这个a该有 33个byte。
我如何能得到这个大小呢?
搜索更多相关主题的帖子: byte String string 
2007-09-03 10:58
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 
LZ的问题描叙不够清楚,
1. 楼主想问的是String对象所占的内存
2. 还是想问String所表示的字符串用byte数组表示后所占的字节数?

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

My BlogClick Me
2007-09-03 11:24
lewis0323
Rank: 2
等 级:新手上路
威 望:3
帖 子:102
专家分:0
注 册:2006-7-20
收藏
得分:0 

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

2007-09-03 11:37
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 
str.getBytes().length

My BlogClick Me
2007-09-03 11:55
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
恩恩~应该是
Byte.SIZE * str.getBytes().length

淘宝杜琨
2007-09-03 12:30
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 
LZ问的是
字节数

而不是bit数

My BlogClick Me
2007-09-03 14:38
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

都是人才


可惜不是你,陪我到最后
2007-09-03 15:05
狂放不羁
Rank: 4
等 级:贵宾
威 望:12
帖 子:925
专家分:0
注 册:2007-1-24
收藏
得分:0 
以下是引用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-09-03 15:42
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 
以下是引用狂放不羁在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.html?page=1


My BlogClick Me
2007-09-03 15:56
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
蛙蛤蛤蛤蛤
我这算不算灌水。。。

淘宝杜琨
2007-09-03 16:11
快速回复:如何能够得到一个String 有多少个byte呢?也就是这个string的大小
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030276 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved