У меня есть строки шаблона/сопоставителя, которые преобразуют входные строки следующим образом:
1 3 Hi [2 1 4]
в такой массив:
[0] => "1"
[1] => "3"
[2] => "Hi"
[3] => "2 1 4"
Это код:
String input = sc.nextLine();
Pattern p = Pattern.compile("(?<=\\[)[^\\]]+|\\w+");
Matcher m = p.matcher(input);
List<String> cIn = new ArrayList<String>();
while(m.find()) cIn.add(m.group());
Теперь я понял, что иногда я мог получить некоторые отрицательные значения, такие как 4 2 -1 2
. Поскольку ввод представляет собой строку, я не могу использовать какое-либо регулярное выражение для получения этого отрицательного значения.
Ниже в коде я использую
Integer.parseInt(cIn.get(0));
чтобы преобразовать это строковое значение в целое число, это на самом деле то, что мне нужно.
Не могли бы вы придумать способ, который позволит мне сохранить вместе -
char и числовой char? Тогда я бы просто проверил, есть ли символ -
для преобразования числа и умножения его на -1
. (Если есть лучший способ, я был бы рад услышать).
Как обычно, извините меня за мой английский.
[]
в качестве токена, даже если они содержат пробелы. (Но мне также нравится подход без регулярных выражений!) - person cheeken   schedule 17.11.2012