Java 删除jtext区域中的行
我正试图删除JTextArea中的所有偶数行,但我很难让它正常工作。 我的JTextArea称为input,我使用for循环遍历这些行,然后删除所有偶数行。 我的for循环:Java 删除jtext区域中的行,java,swing,jtextfield,Java,Swing,Jtextfield,我正试图删除JTextArea中的所有偶数行,但我很难让它正常工作。 我的JTextArea称为input,我使用for循环遍历这些行,然后删除所有偶数行。 我的for循环: for (int i=0; i<lineMax; i++) { if (lineNum % 2 == 0) { end = input.getLineEndOffset(0); input.replaceRange("", 0, end); } lineNum+
for (int i=0; i<lineMax; i++) {
if (lineNum % 2 == 0) {
end = input.getLineEndOffset(0);
input.replaceRange("", 0, end);
}
lineNum++;
}
如果我把这是一个测试放在我的JTextArea中,每个单词都在新行上,那么输出将是一个测试,每个单词都在新行上
end = input.getLineEndOffset(0);
input.replaceRange("", 0, end);
这将始终获得第一行的偏移量,因此您将始终删除从偏移量0到第一行末尾的文本
算法将比在文本区域中尝试向前循环时更加复杂,因为每次删除一行时,下面几行的偏移量都会发生变化,相对行号也会发生变化,因此您不再知道哪一行是奇数/偶数
更简单的方法是从文本区域的最后一行开始。这样,删除文本时,前几行的相对行号不会改变
您可以使用JTextArea的以下方法来帮助处理逻辑:
getLineCount-从这里开始,然后计数回第零行
getLineEndOffset和getLineStartOffset-当您找到一条偶数线时,将获得两个偏移并删除文本。
这将始终获得第一行的偏移量,因此您将始终删除从偏移量0到第一行末尾的文本
算法将比在文本区域中尝试向前循环时更加复杂,因为每次删除一行时,下面几行的偏移量都会发生变化,相对行号也会发生变化,因此您不再知道哪一行是奇数/偶数
更简单的方法是从文本区域的最后一行开始。这样,删除文本时,前几行的相对行号不会改变
您可以使用JTextArea的以下方法来帮助处理逻辑:
getLineCount-从这里开始,然后计数回第零行
getLineEndOffset和getLineStartOffset-当您找到一条偶数线时,将获得两个偏移并删除文本。