Текст области текста, который будет разделен с условиями - PullRequest
0 голосов
/ 20 июня 2009

У меня есть текстовая область, где пользователь может ввести текст свободного потока. Я хочу выделить строки / вхождения в моем классе Java на основе следующих условий:

Когда пользователь не нажимает клавишу ввода, я хочу получить подстроки (тексты) по 10 символов в каждой. Когда пользователь нажимает ввод, я хочу отделить эту часть и начать снова считать до 15, чтобы получить новую подстроку, пока не достигну конца текста / строки свободного потока.

Например, Если пользователь вводит:

Hello I want
enter key to be caught.

Я хочу, чтобы этот текст был разделен на следующие подстроки:

  1. Здравствуйте, я хочу (при условии, что пользователь нажал клавишу ввода в этот момент)
  2. введите ключ для (в качестве ограничения 15)
  3. пойманы

Ответы [ 2 ]

1 голос
/ 20 июня 2009
if( text.contains("\n") ) {

  counter = 15;
  String[] splitText = text.split("\n");
  ArrayList<String> chunks - new ArrayList<String>(text.length%counter+1);
  StringBuilder current = new StringBuilder(counter);

  for( int i = 0; i < splitText.length; i++ ) {
    for( int j = 0; j < splitText[i].length; j++ ) {
      current.append(text.charAt(j));
      if( j%15 == 0 ) {
        chunks.add(current.toString());
        current = new StringBuilder(counter);
      }
    }
    chunks.add(current.toString());
    current = new StringBuilder(counter);
  }

}

С этим вы можете выяснить другое требование, которое у вас было. Это в основном то же самое, только с 15 или вложенными циклами.

0 голосов
/ 20 июня 2009

Полагаю, когда вы говорите "10 символов", вы имеете в виду 15 символов, верно?

В этом случае я использую сначала разбить его на новые строки с помощью StringTokenizer, а затем разбить каждый результат на 15-символьные куски. Это даст вам два цикла: внешний для StringTokenizer и внутренний для 15-символьного чанкинга.

...