Строка Java: как получить значения X, Y и Z из строки «vt X, Y, Z» - PullRequest
2 голосов
/ 11 апреля 2009

как мне получить значения X, Y и Z из строки "vt X, Y, Z"

Ответы [ 2 ]

6 голосов
/ 11 апреля 2009

Я бы, наверное, выбрал регулярное выражение (предполагая, что 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));

Это дает вам лучшую обработку некорректного ввода, чем простое разбиение на разделитель запятыми.

6 голосов
/ 11 апреля 2009

Пока формат остается простым, я бы использовал

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

Если формат имеет большую гибкость, вам нужно использовать регулярное выражение (класс Pattern) или создать для него синтаксический анализатор, используя что-то вроде ANTLR

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...