gpt4 book ai didi

java - 如何在 java 中以从右开始的限制拆分字符串?

转载 作者:搜寻专家 更新时间:2023-10-31 19:37:40 24 4
gpt4 key购买 nike

Split without limits 拆分整个字符串,但如果您设置了一个限制,它会向左拆分到该限制。我怎样才能在右边做同样的事情?

"a.b.c".split("[.]", 2); // returns ["a", "b.c"]

我愿意

"a.b.c".splitRight("[.]", 2); // to return ["a.b", "c"]

编辑:我想要一个通用的解决方案,它的工作方式就像拆分但相反,所以我添加了一个更复杂的示例

我愿意

"a(->)b(->)c(->)d".splitRight("\\(->\\)", 3); // to return ["a(->)b", "c", "d"]

最佳答案

你可以使用前瞻匹配:

"a.b.c".split("[.](?=[^.]*$)")

在这里你说“我只想分割那个点,它后面没有其他点”。

如果你想按最后 N 个点分割,你可以将这个解决方案概括为这个(甚至更丑陋的方式):

"dfsga.sdgdsb.dsgc.dsgsdfg.dsdg.sdfg.sdf".split("[.](?=([^.]*[.]){0,3}[^.]*$)");

3替换为N-2

但是我会写一个简短的静态方法:

public static String[] splitAtLastDot(String s) {
int pos = s.lastIndexOf('.');
if(pos == -1)
return new String[] {s};
return new String[] {s.substring(0, pos), s.substring(pos+1)};
}

关于java - 如何在 java 中以从右开始的限制拆分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33543530/

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