как найти часть строки Java? - PullRequest
0 голосов
/ 03 ноября 2010

Мне нужна какая-то часть файла для отображения. На самом деле, используя Matcher и Pattern, я нашел слово в файле. Используя Matcher.start () и Matcher.end (), я получил положение слова. Но какМогу ли я получить слова до и после этого слова без разделения. Это похоже на программу домашней работы. Помогите мне.

Например: File.txt:

содержит только вышеприведенные строкиЗатем я нашел «слово» в позициях 23 и 26. Теперь я хочу, чтобы «какая-то часть», «файл отображалась».words.

На самом деле, используя String.substring (начало, конец), мы получим некоторую часть, но мне нужны именно слова. Если я возьму подстроку, которую она дает, обрезая часть слов.

Ответы [ 2 ]

0 голосов
/ 03 ноября 2010
String toFind = "day";
String sentence = "wolfrevokcatS no snoitseuq krowemoh tsop ot yad enif a si tI";

char[] charArray = sentence.toCharArray();

String reversedSentence = "";

for(int i = 0; i < charArray.length; ++i) {
    reversedSentence += charArray[charArray.length - i - 1];
}

System.out.println(reversedSentence);
boolean matches = reversedSentence.matches(".+" + toFind + ".+");

if(matches) {

    int start = reversedSentence.indexOf(toFind);
    int end = start + toFind.length();

    System.out.println("Before word to find: " + reversedSentence.substring(0, start));
    System.out.println("Word to find: " + reversedSentence.substring(start, end));
    System.out.println("After word to find: " + reversedSentence.substring(end, reversedSentence.length()));
}

Вот решение, использующее регулярные выражения. Если вам удастся понять этот код, вы хорошо справитесь с манипуляциями со строками в Java. Я не доказал, что это правильно для всех материалов, я оставляю это как упражнение автору вопроса.

0 голосов
/ 03 ноября 2010

Хитрость заключается в том, чтобы помнить, что метод String.range действительно дешев в Java.Поэтому вы получаете подстроки, которые представляют собой «строку перед сопоставленным шаблоном» и «строку после сопоставленного шаблона» и применяют подходящие другие регулярные выражения, чтобы извлечь из них ответы, которые вы хотите.

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