Этот фрагмент кода является частью моей программы, и я пытаюсь распечатать последнее целое значение строки только тогда, когда оператор и знак равенства находятся вместе (например, ^ =, * =, et c.) .
Следовательно, если я введу 4 4 ^ 4 ^ 4 ^=
, я бы хотел вывести только «4». То же самое считается, если число 4 находится непосредственно перед «^ =», например, 4 4 ^ 4 ^ 4 ^ =.
Мой код такой:
if ((input.endsWith("^=")) | (input.endsWith("*=")) |
(input.endsWith("+=")) | (input.endsWith("-=")) |
(input.endsWith("%=")) | (input.endsWith("/=")))
{
Pattern p = Pattern.compile("[^\\d]*[\\d]+[^\\d]+([\\d]+)");
Matcher m = p.matcher(input);
if (m.find()) {
System.out.println(m.group(1)); // second matched digits
}
}
В настоящее время мой код печатает число 4 несколько раз, но я бы хотел напечатать его только один раз. Любая помощь это ценить.
Спасибо!