我必须从以下字符串中检索10
之前和之前的值:TM
MJ
":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]);
有没有有效的方法来做到这一点?
我必须从以下字符串中检索10
之前和之前的值:TM
MJ
":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]);
有没有有效的方法来做到这一点?
为什么来loop
这里??
您的代码可以像这样简单地发布
String s = ":XX: /10/MJ/TM *";
String[] arr = s.split("\\r?\\n?/");
System.out.println(arr[2]);
如果您的字符串的格式是固定的(相对于位置和分隔符)
String s=":XX: /10/MJ/TM *";
System.out.println(s.split("/")[2]); // MJ
我会使用带有组的正则表达式来捕获有趣的部分:
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() 调用编写代码以避免错误。
如果您确定 / 分隔符,您还可以简化正则表达式:“ ./(.)/.* ”