"3"-6ren">
gpt4 book ai didi

java - 如果定界符出现在给定索引之后,则仅根据定界符在 Java 中拆分字符串一次

转载 作者:行者123 更新时间:2023-12-02 08:09:26 25 4
gpt4 key购买 nike

我一直在寻找基于定界符拆分字符串的单步过程,仅一次,仅当定界符出现在特定索引之后时。例如。

输入:字符串--> my-city-hasa-dash, 分隔符--> "-", index --> "3"

虽然第一个定界符出现在第 3 个位置,但它不是 > 提供的索引。所以正则表达式应该查找下一次出现的定界符 > 索引并拆分仅一次

输出[]:{"mycity", "hasadash"}

输入:字符串--> m-ycityhasadash, 分隔符--> "-", index --> "3"delimeter 的索引小于提供的索引。所以不需要拆分。输出[]:{“mycityhasadash”}

最佳答案

如果您使用的是 Java 8,您可以使用:

String[] output = Arrays.asList(
str.replaceAll("^(.{0,2})-", "$1").split("-", 2))
.stream()
.map(x -> x.replace("-", ""))
.toArray(String[]::new);

输出

my-city-hasa-dash - [mycity, hasadash]
m-ycityhasadash - [mycityhasadash]

详情

  • str.replaceAll("^(.{0,2})-", "$1") 会替换前三个字符之前的所有-<
  • .split("-", 2) 将字符串拆分两次
  • .map(x -> x.replace("-", "")) 替换结果输出中的所有-
  • .toArray(String[]::new) 将结果收集到数组中

看看:

关于java - 如果定界符出现在给定索引之后,则仅根据定界符在 Java 中拆分字符串一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48550411/

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