【问题标题】:Split function doesn't work拆分功能不起作用
【发布时间】:2014-03-05 21:09:15
【问题描述】:

这是一个函数,它接受一个长字符串并返回一个按段落划分的字符串。

问题是 k 是空的。为什么split() 功能不起作用?

private String ConvertSentenceToParaGraph(String sen) {
    String nS = "";
    String k[] = sen.split(".");

    for (int i = 0; i < k.length - 1; i++) {
        nS = nS + k[i] + ".";
        Double ran = Math.floor((Math.random() * 2) + 4);

        if (i > 0 && i % ran == 0) {
            nS = nS + "\n\n";
        }
    }
    return nS;
}

【问题讨论】:

标签: java string split


【解决方案1】:

String.split(String regex) 采用正则表达式。一个点. 表示“每个字符”。如果要在点字符上拆分,则必须对其进行转义 \\.

【讨论】:

    【解决方案2】:

    split 需要正则表达式,"." 是“任何字符”的正则表达式。如果要拆分每个 . 字符,则需要对其进行转义:

    String k[] = sen.split("\\.");
    

    【讨论】:

      【解决方案3】:

      split() 方法采用正则表达式。而. 是一个元字符,它匹配除换行符以外的任何字符。你需要逃避它。使用:

      String k[] = sen.split("\\.");
      

      【讨论】:

        【解决方案4】:

        变化:

        sen.split(".");
        

        收件人:

        sen.split("\\.");
        

        【讨论】:

          【解决方案5】:

          如果要在点上拆分,则需要转义点:

          String k[] = sen.split("\\.");
          

          . 在正则表达式 . 上拆分,表示任何字符。

          【讨论】:

          • 编译不了,你必须像别人用的那样使用`\`。
          猜你喜欢
          • 2017-09-15
          • 1970-01-01
          • 1970-01-01
          • 2018-09-24
          • 1970-01-01
          • 1970-01-01
          • 2017-03-24
          • 1970-01-01
          • 2013-05-10
          相关资源
          最近更新 更多