我今天尝试使用行号,但我只有一个问题我无法解决。
如果该行包含任何内容,它可以计算有多少行,但如果它没有任何内容,则只能说0。
我从JavaFX中的TextArea获取文本。
这是我的简单代码
GetArea().setOnKeyPressed((KeyEvent ke) -> {
if (ke.getCode().equals(KeyCode.ENTER)){
int m = GetArea().getText().split("\n").length;
System.out.println(m);
}
});
答案 0 :(得分:0)
split 方法在字符串中搜索与正则表达式匹配的子字符串,在该点拆分句子并排除匹配的子字符串。看看这些例子:
"这是一个测试字符串。\ n这是另一个。"将导致["这是一个测试字符串。","这是另一个。"]并且计数将为2.
"这是一个测试字符串。\ n"将导致["这是一个测试字符串。"]因此结果将为1.
要获得所需的结果,您可以测试字符串中的最后一个字符是否为' \ n'并在行数上加1,从而获得如下内容:
GetArea().setOnKeyPressed((KeyEvent ke) -> {
if (ke.getCode().equals(KeyCode.ENTER)){
String text = GetArea().getText();
int m = text.split("\n").length;
if(text.charAt(text.length() - 1) == '\n')
m++;
System.out.println(m);
}
});