字符串分割的问题

jinancf 2012-10-09 10:20:51
有多行字符串:
04812010101你好}yqxy{yxyyxyeyyeyy32分28秒
04812010101你好}yqxy{yxyy1分58秒
04812010101你好}yqxy{yxyyx{y{eyyyeyyeyyeyyeyy1分58秒
04812010101你好}yqxy{yxyyxyeyyeyy2分0秒
06129010101你好yyyyyyeyeyy2分38秒
06129010102你好yx{ypyxyyxy{yyyyyeyy1分19秒
....

前面数字部分固定为11位,中间两个汉字“你好”,然后一串字符(注:可能有特殊字符),最后一个是时间
我想把每行都分成四部分,如第一行分成
①04512010101
②你好
③yqxy{yxyyxyeyyeyy
④32分28秒
有什么好的方法,求完成程序
...全文
124 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2012-10-09
  • 打赏
  • 举报
回复
不是 split 。。。 你没用过Matcher?

大致是:
Pattern pat = Pattern.compile(pattern);
Matcher mac = pat.matcher(你的字符串);
while (mac.find()) {
System.out.println(mac.group(1));
System.out.println(mac.group(2));
}

jinancf 2012-10-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
String pattern = "(\\d{11})(你好)(.*)(\\d{1,2}分\\d{1,2}秒)";

匹配后,用 group(n) 来得到各匹配区间(小括号)
1:04512010101
2:你好
3:yqxy{yxyyxyeyyeyy
4:32分28秒
[/Quote]

我用str.split(pattern)后不起作用,另外,group(n)是什么方法?
jinancf 2012-10-09
  • 打赏
  • 举报
回复
group(n)是什么东东?
MiceRice 2012-10-09
  • 打赏
  • 举报
回复
用正则来匹配吧。

表达式大概是:
String pattern = "(\\d{11})(你好)(.*)(\\d{1,2}分\\d{1,2}秒)";

匹配后,用 group(n) 来得到各匹配区间(小括号)
1:04512010101
2:你好
3:yqxy{yxyyxyeyyeyy
4:32分28秒

62,621

社区成员

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

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