java - 如何将字符串拆分为有意义的标记?

标签 java string parsing

我需要一种更好的方法来分割以下字符串。我不确定如何识别子字符串并将其分配给正确的变量:

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/

相关文章:

java - 将 jar 部署到 unix 服务器

java - 字符串时间复杂度

c - C 中的奇怪字符串问题

c++ - 解析嵌套的CSS结构

java - 将动态参数传递给 @MapKey ("${dynamicParam}") (My-Batis)

java - 我怎样才能获取这个json数据

java - 使用谷歌地图获取 Activity 和 fragment 之间的数据

java - 模式计数在 0's and stat and end with "1"之间

java - 在 Java 中比较 2 个 XML 文档的最佳方法

python - 如何提交仅给出 HTML 源的表单?