gpt4 book ai didi

java - 如何在java中使用指定的分隔符分割字符串,同时忽略/?

转载 作者:行者123 更新时间:2023-12-01 06:50:58 25 4
gpt4 key购买 nike

我尝试阅读有关正则表达式和转义的内容,但没有成功。

我有一个如下所示的字符串:

String s = "4/18/2015|Planned|Linux|Maintenance";

我想用分隔符“|”将其分开:

String[] tokens = s.split("|");

我期望的正确结果是

tokens[0] is "4/18/2015", 
tokens[1] is "Planned",
tokens[2] is "Linux",
token[3] is "Maintenance",

但它给了我一些奇怪的结果,如下所示:

tokens[0] is null
tokens[1] is 4
tokens[2] is /
and tokens[3] is 1

我猜这是因为日期中的斜杠“/”,这就是原因。我尝试搜索许多现有问题并尝试了建议的方法,但没有成功。

最佳答案

@mushfek0001 got it right .

大多数正则表达式方言中的管道是用于交替的元字符;基本上,您要求正则表达式引擎在这里执行的操作是:“拆分空字符串或...空字符串”。

而且,呃,这意味着你每次都可能会变成空,除了正则表达式引擎不是傻瓜,如果在拆分中检测到空匹配,引擎将在再次拆分之前前进一个字符......因此你的结果(但不确定为什么第一个元素是 null 而不是空字符串)。

因此,您应该针对 "\\|" 进行拆分,而不是针对 "|"

此外,如果您重复执行此操作,请改用Pattern:

private static final Pattern PIPE = Pattern.compile("\\|");

// ...

final String[] tokens = PIPE.split(yourInput);

关于java - 如何在java中使用指定的分隔符分割字符串,同时忽略/?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29405164/

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