如果没有在线内容,JavaFX行号不起作用

时间:2014-10-10 19:33:38

标签: javafx line-numbers

我今天尝试使用行号,但我只有一个问题我无法解决。

如果该行包含任何内容,它可以计算有多少行,但如果它没有任何内容,则只能说0。

我从JavaFX中的TextArea获取文本。

这是我的简单代码

GetArea().setOnKeyPressed((KeyEvent ke) -> {
            if (ke.getCode().equals(KeyCode.ENTER)){
                int m = GetArea().getText().split("\n").length;
                System.out.println(m);
            }
        });

1 个答案:

答案 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);
        }
    });