gpt4 book ai didi

java - java split() 究竟是如何工作的?

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

为什么在java中使用split()会有不同的效果?我想分割这样的版本字符串: 1.2.3.4 但是如果我这样做:将得到一个空数组,如果我使用 split("\\."),它会像我的那样工作预计:

        String version1 = "1.2.3.4.5";
String version2 = "1.2.3.4.5.6";
String[] v1Arr = version1.split(".");
String[] v2Arr = version2.split("\\.");
System.out.println(Arrays.toString(v1Arr)); // [] why?
System.out.println(Arrays.toString(v2Arr)); // [1, 2, 3, 4, 5, 6]


String version1 = "1-2-3-4-5";
String version2 = "1-2-3-4-5-6";
String[] v1Arr = version1.split("-");
String[] v2Arr = version2.split("\\-");

System.out.println(Arrays.toString(v1Arr)); // [1, 2, 3, 4, 5]
System.out.println(Arrays.toString(v2Arr)); // [1, 2, 3, 4, 5, 6]

如果我改变“.”到“-”都按预期工作,为什么会发生这种情况?预先感谢您!

最佳答案

. 是正则表达式中的特殊模式标记。它匹配任何一个字符。当您分割每个可能的字符时,您会得到一个空数组(因为没有剩下任何内容)。相反,当您使用 \\. 转义 . 时,标记将呈现为文字(并且仅与文字 . 匹配)。

关于java - java split() 究竟是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52214418/

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