-1

我必须从以下字符串中检索10之前和之前的值:TMMJ

":XX /10/MJ/TM"

我能够从下面的代码中检索值:

String s=":XX: /10/MJ/TM *";
String[] arr = s.split("\\r?\\n?/");

for(int i=0;i<arr.length;i++)
    System.out.println(arr[2]);

有没有有效的方法来做到这一点?

4

3 回答 3

0

为什么来loop这里??

您的代码可以像这样简单地发布

    String s = ":XX: /10/MJ/TM *";
    String[] arr = s.split("\\r?\\n?/");
    System.out.println(arr[2]);
于 2013-07-03T12:08:49.867 回答
0

如果您的字符串的格式是固定的(相对于位置和分隔符)

String s=":XX: /10/MJ/TM *";
System.out.println(s.split("/")[2]); // MJ
于 2013-07-03T11:59:27.700 回答
0

我会使用带有组的正则表达式来捕获有趣的部分:

String s=":XX: /10/MJ/TM *";
Pattern p = Pattern.compile(".*10/(.*)/TM.*");
Matcher matcher = p.matcher(s);
matcher.find();
System.out.println(matcher.group(1));

警告:您应该围绕 find() 和 group() 调用编写代码以避免错误。

如果您确定 / 分隔符,您还可以简化正则表达式:“ ./(.)/.*

于 2013-07-03T11:59:42.113 回答