我有一个文本区域,用户可以在其中输入自由流文本。我想根据以下条件将我的Java类中的行/出现分开:
当用户没有按回车键时,我想获得每个10个字符的子串(文本)。当用户按下回车键时,我想将该部分分开并重新开始计数直到15,以获得新的子字符串,直到我到达自由流文本/字符串的末尾。
例如, 如果用户输入:
Hello I want enter key to be caught.
我希望将此文本分隔为以下子字符串:
答案 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的内部循环。