Как извлечь часть строки

#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));