gpt4 book ai didi

java - 如何根据限制在java中拆分字符串

转载 作者:搜寻专家 更新时间:2023-11-01 04:06:30 25 4
gpt4 key购买 nike

我有以下字符串,当它的长度达到 36 时,我想将该字符串拆分为多个子字符串(通过以 ',' 作为分隔符)。它不完全在第 36 个位置拆分

      String message = "This is some(sampletext), and has to be splited properly";

我想得到如下两个子字符串的输出:
1. '这是一些(示例文本)'
2. '并且必须正确拆分'

提前致谢。

最佳答案

基于正则表达式的解决方案:

    String s = "This is some sample text and has to be splited properly";
Pattern splitPattern = Pattern.compile(".{1,15}\\b");
Matcher m = splitPattern.matcher(s);
List<String> stringList = new ArrayList<String>();
while (m.find()) {
stringList.add(m.group(0).trim());
}

更新:可以通过将模式更改为以空格结尾或字符串结尾来删除 trim():

    String s = "This is some sample text and has to be splited properly";
Pattern splitPattern = Pattern.compile("(.{1,15})\\b( |$)");
Matcher m = splitPattern.matcher(s);
List<String> stringList = new ArrayList<String>();
while (m.find()) {
stringList.add(m.group(1));
}

group(1) 意味着我只需要模式的第一部分 (.{1,15}) 作为输出。

.{1,15} - 任意字符 (.) 的序列,长度在 1 到 15 ({1,15}) 之间

\b - 分词(任何单词之前或之后的非字符)

( |$) - 空格或字符串结尾

此外,我在 .{1,15} 周围添加了 (),因此我可以将其作为一个整体使用 (m.group(1))。根据所需的结果,可以调整此表达式。

更新:如果您只想在长度超过 36 时才用逗号分隔消息,请尝试以下表达式:

Pattern splitPattern = Pattern.compile("(.{1,36})\\b(,|$)");

关于java - 如何根据限制在java中拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10735621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com