Topic: 求教各位学长一个关于String的问题 |
Print this page |
1.求教各位学长一个关于String的问题 | Copy to clipboard |
Posted by: awardwy Posted on: 2005-09-10 12:23 public class InterceptString { public String convertString(byte[] bytes,int beginwith,int endwith){ byte[] a=new byte[bytes.length]; StringBuffer s=new StringBuffer(); for(int i=beginwith;i<endwith;i++){ a[i]=bytes[i]; } s.append(a.toString()); return "截取之后的字符串是"+s.toString(); } public static void main(String[] args) { // TODO Auto-generated method stub String str=new String(";jidtdtj"); byte[] bytes=str.getBytes(); InterceptString a=new InterceptString(); String s=new String(); s=a.convertString(bytes,2,4); for(int i=0;i<s.length();i++){ System.out.print(s.charAt(i)); } } } 它打印的是这个STRING对象地址,如何打印出它的内容啊! 望各位能够不惜赐教,谢谢 |
2.Re:求教一个关于String的问题 [Re: awardwy] | Copy to clipboard |
Posted by: why Posted on: 2005-09-10 20:05 There seems to be some 全形空格 in the source code you posted, please post the correct version. > 它打印的是这个STRING对象地址 What did you mean? Which line were you referring to? ... okay, I see, s.append(a.toString()); // a is byte[], a.toString() returns the "address" return "截取之后的字符串是" + s.toString(); // new String( a ) instead of s.toString Anyway, I don't think this works -- or should I say, I don't know what you're trying to do for (int i = beginwith; i < endwith; i++) { a[i] = bytes[i]; } Think about what a[0]..a[beginwidth-1] and a[endwith]..a[bytes.length-1] are. |
3.Re:求教各位学长一个关于String的问题 [Re: awardwy] | Copy to clipboard |
Posted by: GlennLi Posted on: 2005-09-12 10:39 awardwy wrote: 我认为你如果你不需要考虑单双字节,你没有必要使用StringBuffer这个类。 直接使用String的构造函数: ****************************************** public String(byte bytes[], int offset, int length) 功能: 用平台缺省的字符编码方式转换指定的字节子数组生成一个新的 String 。 参数: bytes - 要转换为字符的字节。 offset - 要转换的第一个字节的索引。 length - 要转换的字节数。 ****************************************** 而且你的很多参数和方法没有必要,比如 byte[] a=new byte[bytes.length];就没有必要,直接使用参数中的byte[] bytes就行了;也没有使用append的方法的必要,String类的构造函数已经可以实现你的要求。 我改动后的程序: (缩略图,点击图片链接看原图) |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |