取byte[]中的某一段数据,怎么弄?别告诉我用循环!

YunTan 2004-07-14 11:50:50
byte[] aaa = "jiligulu xiliwala";
请问:
怎样把后面那段“xiliwala"提取出来?

看了n多资料,这么简单的功能居然要好长一段代码,看得恶心不说,效率还奇低无比。我在C语言中只用一行代码搞定:
strncpy(),或者memcpy()。
...全文
491 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2004-07-22
  • 打赏
  • 举报
回复

用System.arraycopy

>你把C看得太高了。我更喜欢java,简洁易用,可惜就是字符串处理功能弱了点

谁说java的字符串处理功能弱?尤其是和C比较
hl_longman 2004-07-22
  • 打赏
  • 举报
回复
up&studying
xiaoxi99cspy 2004-07-22
  • 打赏
  • 举报
回复
不知道搂主是不是要这种代码:

byte[] aaa = "jiligulu xiliwala".getBytes();

byte[] bb = new byte[aaa.length];

System.arraycopy(aaa,9,bb,0,8);

System.out.println(new String(bb,0,8));

还是这种
String cc = "jiligulu xiliwala";
String dd = cc.substring(9,17);
System.out.println(dd);

System.arraycopy 应该是你想要的。这个效率比循环要高得多。可能是用移位操作实现的吧!
bingbing_qc 2004-07-22
  • 打赏
  • 举报
回复
java中String类的方法很多,基本上能满足我们需要,,,我也不知道你要解决
什么问题。。所以我支持moke33(Mr.Li ★ 我爱冰冰) 的方法,String(byte[] bytes, int offset, int length)。。。。。
还有JAVA本身就不是高效的,如果要高效那你选择错语言了
xkak2 2004-07-22
  • 打赏
  • 举报
回复
我对java懂得不多,不过c++倒是用了几年。strncpy和memcpy其实也是循环啊,不用循环谁能实现strncpy?
记得c版上几年前一个老兄说,他去Microsoft面试,题目就是写出strcpy的实现代码。他写完后斟酌再三,总是觉得自己的代码不够好,面试自然也没有过。回头来,翻出了编译器里的c源码,才发现这么简单一个实现,原来有这么深的道理。
YunTan 2004-07-22
  • 打赏
  • 举报
回复
无奈,高手都不来。大家要是懂一点C++,应该能明白我的想法。明天结贴,当散分吧。
YunTan 2004-07-19
  • 打赏
  • 举报
回复
的确应该是byte[] aaa = "jiligulu xiliwala".getBytes();
sorry,我对java还不是很习惯:(
循环是不行的,我这里对效率要求很高,恐怕非得使用操作系统提供的内存块拷贝功能才能达到要求。

to ningIII(小宁):
你把C看得太高了。我更喜欢java,简洁易用,可惜就是字符串处理功能弱了点,还有就是内存操作太麻烦。
shine333 2004-07-15
  • 打赏
  • 举报
回复
System.arraycopy
YunTan 2004-07-15
  • 打赏
  • 举报
回复
针对byte[]操作,不是字符串。String默认编码是16位每字节的。
moke33 2004-07-15
  • 打赏
  • 举报
回复
String(byte[] bytes,int offset, int length);
prok 2004-07-15
  • 打赏
  • 举报
回复
^_^!
GaryZhu 2004-07-15
  • 打赏
  • 举报
回复
byte[] aaa = "jiligulu xiliwala";
这是什么东东?????????
superpop 2004-07-15
  • 打赏
  • 举报
回复
无语,循环怎么了?循环又不会慢,现在谁的计算机速度慢了的
skyMountain 2004-07-15
  • 打赏
  • 举报
回复
楼主,应该是byte[] aaa = "jiligulu xiliwala".GetBytes();吧?
自己写一个循环拷贝的函数,别以为循环拷贝会慢了。普通机子每毫秒运行十万次循环都没问题。
allenhe 2004-07-15
  • 打赏
  • 举报
回复
楼主...我都不说你什么了哦
ningIII 2004-07-15
  • 打赏
  • 举报
回复
楼主对c那么熟悉还学java干吗!

还让我们笑话~
neofane 2004-07-15
  • 打赏
  • 举报
回复
byte[] aaa = "jiligulu xiliwala";

这句是不行的啊

但是如果改成byte[] aaa = "jiligulu xiliwala".getBytes();
那又如何告诉人家要抓哪些出来啊
shine333 2004-07-15
  • 打赏
  • 举报
回复
>byte[] aaa = "jiligulu xiliwala";

????!!!!

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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