Java字符串:如何从字符串“vt X,Y,Z”获取X,Y和Z的值

时间:2009-04-10 20:36:55

标签: java string

如何从字符串“vt X,Y,Z”中获取X,Y和Z的值

2 个答案:

答案 0 :(得分:6)

只要格式保持简单,我就会使用

String s = "vt X, Y, Z";
String[] values = s.split("[ ,]+");
String x = values[1];
String y = values[2];
String z = values[3];

如果格式具有更大的灵活性,您将需要使用正则表达式(Pattern类)或使用类似ANTLR

之类的东西创建解析器。

答案 1 :(得分:6)

我可能会选择正则表达式(假设X,Y和Z为ints):

Pattern p = Pattern.compile("vt ([0-9]+),\\s*([0-9]+),\\s*([0-9]+)");
Matcher m = p.match(line);
if (!m.matches())
  throw new IllegalArgumentException("Invalid input: " + line);
int x = Integer.parseInt(m.group(1));
int y = Integer.parseInt(m.group(2));
int z = Integer.parseInt(m.group(3));

这使您可以更好地处理无效输入而不是逗号分隔符上的简单拆分。