byte转String时怎样把byte中结尾的0取掉???

yaoyanlin75 2013-08-18 07:05:50
byte[] test = new byte[36];
test[0] = 'A';
test[1] = 'D';
String teststr = new String(test);
teststr.trim();
int Len = teststr.length();

test[2]到test[35]都是0.
专成teststr 后,变量查看是"AD ".
trim无效
Len还是等于36.

怎样才能把后面的0取掉???
...全文
1545 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
2013-08-18
  • 打赏
  • 举报
回复
引用 4 楼 yaoyanlin75 的回复:
感谢楼上各位,学c的现在用java,各种不适应,我也正准备用1楼的这个办法。
如果你传递的数据中存在0怎么办。你需要的是去掉末尾的0.
yaoyanlin75 2013-08-18
  • 打赏
  • 举报
回复
感谢楼上各位,学c的现在用java,各种不适应,我也正准备用1楼的这个办法。
2013-08-18
  • 打赏
  • 举报
回复
你也可以从最后一位开始判断,直到遇到一个字符不等于0的字符,然后记住这个位置。
lishikai500 2013-08-18
  • 打赏
  • 举报
回复
转换了之后 这个string 变成 "AD\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000....." \u0000 在unicode中查是 NUL 而trim 检测的是 \u0020也就是空格。 所以估计trim不掉吧。 用 System.out.println(teststr.indexOf('\u0000'));能看到 第几位是 这个NUL 然后用 teststr = teststr.substring(0,teststr.indexOf('\u0000')); 来截取就好了。
马达马达达 2013-08-18
  • 打赏
  • 举报
回复
	byte[] test = new byte[36];
		test[0] = 'A';
		test[1] = 'D';
		String teststr = "";
		for (byte b: test) {
			if (b != 0) {
				teststr += (char)b;
			}
		}
		int len = teststr.length();
		System.out.println(len);
		System.out.println(teststr);

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧