我需要一种更好的方法来分割以下字符串。我不确定如何识别子字符串并将其分配给正确的变量:
at Manchester (Old Trafford) 24/8/1972 England won by 6 wickets [35 balls remaining]
我想拆分上面的字符串并将子字符串分配给不同的变量。
Venue --> Manchester (Old Trafford)
Date --> 24/8/1972
Result --> England won by 6 wickets [35 balls remaining]
我尝试过StringTokenizer
,但我觉得像上面那样获取赋值工作量太大,而且太复杂。当我使用 StringTokenizer
时,我得到了以下子字符串:
at Manchester
(Old
Trafford)
24/8/1972
England
won
by
6
wickets
[35
balls
remaining]
请提出更好的方法。
最佳答案
如果所有字符串都具有相同的格式(地点、斜杠分隔的日期、结果),则可以使用正则表达式。
Pattern p = Pattern.compile("(.+) (\\d+/\\d+/\\d+) (.+)");
Matcher m = p.matcher(record);
if (!m.matches())
throw new IllegalArgumentException("Invalid record format.");
String venue = m.group(1);
String date = m.group(2);
String result = m.group(3);
...
这假设地点永远不会包含看起来像日期的子字符串。
关于java - 如何将字符串拆分为有意义的标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9774041/