起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1745|回复: 10

[结贴] 怎么截取这个字符串

[复制链接]

25

主题

94

帖子

147

积分

初级会员

Rank: 2

积分
147
QQ
发表于 2014-7-29 13:20:24 | 显示全部楼层 |阅读模式
String str = "[[Relation [Task id=12 uniqueID=12 name=定义对基础设施的要求] -> [Task id=21 uniqueID=21 name=评估项目需求并制定主要研究项目列表]], [Relation [Task id=12 uniqueID=12 name=定义对基础设施的要求] -> [Task id=11 uniqueID=11 name=确定备选场地]]]";



我要截取这个字符串里的uniqueID的21和11。。求帮助,急。请附上代码

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2014-7-29 14:01:38 | 显示全部楼层
这些都是java标准的,可以到网上查找相关的资源
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 0 反对 1

使用道具 举报

发表于 2014-7-29 14:05:13 | 显示全部楼层
String[] str1 = str.split(",");
                String s1 = str1[0].substring(str1[0].indexOf(">")+1, str1[0].length()-1);

ps:方法有点笨,后面的你自己做吧(不难的

评分

参与人数 1 +4 收起 理由
jishuang + 4 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

18

主题

77

帖子

460

积分

中级会员

Rank: 3Rank: 3

积分
460
QQ
发表于 2014-7-29 14:22:30 | 显示全部楼层
String s1[]=str.split("uniqueID=");
String s="";
if(s1.length()>1)
{
   for(int i=1;i<s1.length();i++)
{
      s=s1.subString(0,(s1.indexOf(" ")));
}
}
可以试试看  看能不能实现。
回复 支持 反对

使用道具 举报

25

主题

94

帖子

147

积分

初级会员

Rank: 2

积分
147
QQ
 楼主| 发表于 2014-7-29 14:41:50 | 显示全部楼层
yangkaiyuan 发表于 2014-7-29 14:22
String s1[]=str.split("uniqueID=");
String s="";
if(s1.length()>1)

什么结果也没有啊
回复 支持 反对

使用道具 举报

25

主题

94

帖子

147

积分

初级会员

Rank: 2

积分
147
QQ
 楼主| 发表于 2014-7-29 14:44:11 | 显示全部楼层
yangkaiyuan 发表于 2014-7-29 14:22
String s1[]=str.split("uniqueID=");
String s="";
if(s1.length()>1)

12
21
12
11

只要21和11
回复 支持 反对

使用道具 举报

18

主题

77

帖子

460

积分

中级会员

Rank: 3Rank: 3

积分
460
QQ
发表于 2014-7-29 15:03:47 | 显示全部楼层
  那你这有什么规律的吗? 还是你开始就确认了只需要21和11?  
回复 支持 反对

使用道具 举报

25

主题

94

帖子

147

积分

初级会员

Rank: 2

积分
147
QQ
 楼主| 发表于 2014-7-29 17:19:55 | 显示全部楼层
yangkaiyuan 发表于 2014-7-29 15:03
那你这有什么规律的吗? 还是你开始就确认了只需要21和11?

只需要->后边那一条的uniqueID,可能后边会有很多组,这个就有21和11,所以需要21和11
回复 支持 反对

使用道具 举报

242

主题

1418

帖子

2325

积分

金牌会员

批判主义者

Rank: 6Rank: 6

积分
2325
QQ
发表于 2014-7-29 18:21:03 | 显示全部楼层
通过正则表达式来做
如果我说对了 请别忘记点赞.
回复 支持 反对

使用道具 举报

18

主题

77

帖子

460

积分

中级会员

Rank: 3Rank: 3

积分
460
QQ
发表于 2014-7-30 14:40:01 | 显示全部楼层
   哥们你在原来代码基础上加个判断就可以了撒  。其实最简单的还是用正则表达式去做。
String str = "[[Relation [Task id=12 uniqueID=12 name=定义对基础设施的要求] -> [Task id=21 uniqueID=21 name=评估项目需求并制定主要研究项目列表]], [Relation [Task id=12 uniqueID=12 name=定义对基础设施的要求] -> [Task id=11 uniqueID=11 name=确定备选场地]]]";
                String s1[]=str.split("uniqueID=");
                 String s="";
                 if(s1.length>1)
                 {
                    for(int i=1;i<s1.length;i++)
                 {
                       s=s1.substring(0,(s1.indexOf(" ")));
                       if(s1.indexOf("->")>=0)
                       {
                               System.out.println("----"+s1[i+1].substring(0,(s1.indexOf(" "))));
                              
                       }
                       System.out.println(s);
                 }
                 }

评分

参与人数 1 +5 收起 理由
jishuang + 5 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-17 17:38 , Processed in 0.112654 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表