Как мне обработать каждые пять слов в текстовом файле на Java? - PullRequest
1 голос
/ 05 апреля 2011

Greetings All;

У меня есть текстовый файл с именем «test.txt», и я хочу, чтобы процесс обрабатывался только для каждых 5 слов.

, например, если test.txt содержит:

On the Insert tab the galleries include items that are designed to coordinate with the overall look of your document.

Я хочу взять первые пять слов: On the Insert tab the, выполнить с ними некоторые функции.затем следующие пять слов galleries include items that are, выполняйте функции ... и т.д. до конца файла.

Я хочу сделать это с помощью java.Any Ideas?

Ответы [ 4 ]

1 голос
/ 06 апреля 2011

Итак, этот псевдокод:

  • Прочитать файл
  • Поместите слова в список
  • while (остаются необработанные предметы)
    • Возьми пять
    • processThem
  • повтор

Может быть реализовано в соответствии с принципами.

String fileContent = readFile("test.txt");
List<String> words = splitWordsIntoList( fileContent );
int n = 0;
List<String> five = new ArrayList<String>();
for( String word : words ) { 
  if( n++ < 5 ) { 
     five.add( word );
  } else { 
      n = 0 ;
      process( five );
  }
}
0 голосов
/ 06 апреля 2011

Группы слов по 5, затем переберите найденные совпадения.

Pattern p = Pattern.compile("(\\w*\\s?){5}");
String s = "On the Insert tab the galleries include items that are designed to coordinate with the overall look of your document.";
Matcher m = p.matcher(s);
while (m.find()) {
   String words_group = m.group();
   System.out.println(words_group);
}

Разделить группу слов можно:

words_group.split(" "); // returns String[]
0 голосов
/ 06 апреля 2011

Вы можете прочитать весь текстовый файл в одну строку и использовать токенайзер строк, чтобы создать массив слов, если ваши слова всегда разделяются пробелами.

0 голосов
/ 06 апреля 2011

Проверьте метод String.split () в SDK.Скорее всего, у вас есть хорошие пути, куда вы направляетесь.

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