2

我有JTextArea一个固定大小的,JTextArea允许换行和单词。

我试图JTextArea在换行之前得到最后一句话。

有没有办法得到它?

我已经尝试使用lineCount(),getStartOffset()getEndOffset(). getRows()我知道我的文本有多长,它有多少个字符。lineCount总是return 1

我正在考虑进行更改以获取 的可能字符长度JTextArea,或在字符串中查找中断信息,但没有方法。

有没有人有想法得到它?

4

2 回答 2

0

用空格字符分割你的字符串,然后找到数组的最后一个元素。一个简单的例子:

String myString = "foo bar foo bar";
String[] stuff = myString.split(" ");
String last = stuff[stuff.length-1];

“last”字符串的结果将是“bar”。

编辑:如果您在查找断点字符时遇到问题,下面评论中提供的链接也应该会有所帮助:如何将换行的文本从 JTextArea 获取到多个行分隔的字符串中

于 2017-04-21T13:26:44.183 回答
0

这是一些未经测试的代码,可以给您一个想法。

由于您知道文本区域的大小,您可以使用文本区域的模型/视图方法来获取文本。

int width = textArea.getSize().width;
int height = textArea.modelToView(0).height / 2;
int offset = textArea.viewToModel( new Point(width, height) );
int start = Utilities.getPreviousWord( offset );  // or maybe getWordStart(...)?
int end = Utilitities.getWordEnd( start );
String text = textArea.getText(start, end - start);
于 2017-04-21T14:59:51.787 回答