java中的字符串截取

闲人のMr丶Wu 2012-10-19 01:12:01
现在有如下字符串:
000512345

字符串的构成说明:0005前四位表示后面有多少个长度的字符,后面可能有多个这样结构的长字符串组成,比如:

0005123450003123000812345678
请教下像这样的字符串该怎样截取
...全文
368 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
火光闪耀 2012-10-21
  • 打赏
  • 举报
回复
这个好像没有什么好的方法,因为字符位数不确定,只能先取4位,然后取由这4位确定的字符,然后再4位。。。似乎只能这样做。
CharlesLee1120 2012-10-20
  • 打赏
  • 举报
回复
这里最好是用正则表达式来写.
abc0824 2012-10-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

String strs="0005123450003123000812345678";
while(strs.length() > 0){
int str1=Integer.parseInt(strs.substring(0,4));
System.out.println(strs.substring(0,str1+4));
strs=strs.substr……
[/Quote]
+1
Alice_xueli 2012-10-19
  • 打赏
  • 举报
回复
String strs="0005123450003123000812345678";
while(strs.length() > 0){
int str1=Integer.parseInt(strs.substring(0,4));
System.out.println(strs.substring(0,str1+4));
strs=strs.substring(str1+4);
}

红色部分 看您是否需要前面的'000'
若鱼1919 2012-10-19
  • 打赏
  • 举报
回复

public static void main(String[] args){
String str = "0005123450003123000812345678";
while(str.length() > 0){
int len = Integer.parseInt(str.substring(0,4));
String sub = str.substring(4,4+len);
System.out.println(sub);
str = str.substring(4+len);
}
}
sffx123 2012-10-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

1. 先取字符串前四位的子串(subString),获得子串所代表的数字n,将剩下的串看成一个新串x
2. 在x中取前n个字符的子串

如此类推
[/Quote]+1
zhangsf1982 2012-10-19
  • 打赏
  • 举报
回复


String as = "0005123450003123000812345678";

while (as.length()>0){
int strCount=Integer.valueOf(as.substring(0, 4));
String res=as.substring(4, 4+strCount);
//out print your string
System.out.println(res);
as=as.substring(4+strCount, as.length());
}

iceworldvip 2012-10-19
  • 打赏
  • 举报
回复
顺序执行,首先取得前四位,然后转换成Integer,截取子串的形式获取Integer这么长的串,剩余串放到新的字符串里,以此类推
dracularking 2012-10-19
  • 打赏
  • 举报
回复
1. 先取字符串前四位的子串(subString),获得子串所代表的数字n,将剩下的串看成一个新串x
2. 在x中取前n个字符的子串

如此类推

50,530

社区成员

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

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