要与条件分割的文本区域文本

时间:2009-06-20 16:17:09

标签: java string split

我有一个文本区域,用户可以在其中输入自由流文本。我想根据以下条件将我的Java类中的行/出现分开:

当用户没有按回车键时,我想获得每个10个字符的子串(文本)。当用户按下回车键时,我想将该部分分开并重新开始计数直到15,以获得新的子字符串,直到我到达自由流文本/字符串的末尾。

例如, 如果用户输入:

Hello I want
enter key to be caught.

我希望将此文本分隔为以下子字符串:

  1. 我想要的(假设用户此时按下了输入键)
  2. 输入密钥(限制为15)
  3. 捕获

2 个答案:

答案 0 :(得分:1)

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或嵌套循环基本相同。

答案 1 :(得分:-1)

我假设当你说“10个字符”时你的意思是15个字符,对吧?

在这种情况下,我首先使用StringTokenizer在换行符上拆分它,然后将每个结果分成15个字符块。这将为您提供两个循环,一个用于StringTokenizer的外部循环和一个用于15-char chunkifying的内部循环。