为了账号安全,请及时绑定邮箱和手机立即绑定

用新行拆分Java字符串

/ 猿问

用新行拆分Java字符串

万千封印 2019-06-18 16:27:35

用新行拆分Java字符串

我试图将文本拆分为JTextArea使用regex将字符串拆分为\n然而,这是行不通的,我也尝试过\r\n|\r|n和其他许多雷克斯的组合。代码:

public void insertUpdate(DocumentEvent e) {
    String split[], docStr = null;
    Document textAreaDoc = (Document)e.getDocument();

    try {
        docStr = textAreaDoc.getText(textAreaDoc.getStartPosition().getOffset(), textAreaDoc.getEndPosition().getOffset());
    } catch (BadLocationException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    split = docStr.split("\\n");}


查看完整描述

3 回答

?
汪汪一只猫

这应包括:

String lines[] = string.split("\\r?\\n");

实际上,您只需要担心两行新行(UNIX和Windows)。


查看完整回答
反对 回复 2019-06-18
?
一只甜甜圈

如果你不想要空行:

String.split("[\\r\\n]+")


查看完整回答
反对 回复 2019-06-18
?
POPMUISE

split方法使用regex(正则表达式)。因为Java 8正则表达式支持\R它代表(来自)模式类文档):

分界线匹配器
\r任何Unicode换行序列,都相当于\u000D\u000A|[\u000A\u000B\u000C\u000D\u0085\u2028\u2029]

所以我们可以用它来匹配:

如你所见\r\n放在regex的开头,这将确保regex将尝试与此匹配。成对首先,只有当比赛失败时,它才会尝试匹配。单字符线分离器。


因此,如果要拆分在线分隔符,请使用split("\\R").

如果你不想从结果数组中删除拖尾空字符串""使用split(regex, limit)带负limit参数类split("\\R", -1).

如果要将一个或多个连续空行视为单个分隔符,请使用split("\\R+").


查看完整回答
反对 回复 2019-06-18

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信