#java
#java
Вопрос:
Моя Java-программа генерирует набор строк в качестве выходных данных, например
Give input: 4 5
4 5 = <<9>>
Ответ отображается между << >>.
Я просто хочу извлечь ответ 9. Как я могу это сделать? Должен ли я использовать сопоставление с шаблоном?
Комментарии:
1. Используйте регулярные выражения. Java имеет требуемые классы в пакете
java.util.regex
.2. Зачем вам нужно извлекать ее при выводе?
3. Вам нужно проанализировать выходные данные вашей собственной программы? Почему бы просто не заставить ее делать что-то полезное с
9
прямо там и тогда, когда она вычисляется?4. Если вам не требуется, чтобы << >> было там, почему бы не удалить код, который их вставляет, вместо добавления нового кода для их удаления?
5. @BrianRoach я выполняю одну java-программу из другой java-программы. Итак, мне нужно ухватиться за это значение, чтобы идти дальше.
Ответ №1:
Вот несколько регулярных выражений, которые помогут
String answer = "<<9>>";
Pattern pat = Pattern.compile("\d ");
Matcher mat = pat.matcher(answer);
mat.find();
answer = mat.group();
System.out.println(answer);
Если строка всегда будет в этом формате <<n>>
, то решение @Sid лучше, поскольку регулярное выражение не требуется.
Ответ №2:
Используйте какое-нибудь регулярное выражение : http://java.sun.com/developer/technicalArticles/releases/1.4regex /
Или сделайте это вручную с помощью indexOf
.
Ответ №3:
String str = "<<9>>";
String prefix = "<<";
String postfix = ">>";
String answer = str.substring(prefix.length, str.indexOf(postfix));