gpt4 book ai didi

java - 未从 java String split 方法获得预期输出

转载 作者:行者123 更新时间:2023-11-30 07:06:15 24 4
gpt4 key购买 nike

我有一个字符串“1.0+20*30.2-4.0/10.1”,我想以这样的方式拆分它,这样我将有一个字符串数组

strArr = {"1.0", "20", "30.2", "4.0",10.1}

我为此编写了以下代码

public class StringSplitDemo {
public static void main(String[] args) {
String str = "1.0+20*30.2-4.0/10.1";
String[] strArr = (str.split("[\\+-/\\*]"));
for(int i=0;i<strArr.length;i++)
System.out.print(strArr[i]+" ");
}
}

它不是打印预期的输出(由我),即 1.0 20 30.2 4.0 10.1

output: 1 0 20 30 2 4 0 10 1 

这似乎也围绕“.”分割字符串。即使我没有将其包含在正则表达式模式中。

我在这里缺少什么?这样做的正确方法是什么?

最佳答案

使用

String str = "1.0+20*30.2-4.0/10.1";
String[] strArr = str.split("[-+/*]");
System.out.print(Arrays.toString(strArr));

请参阅online Java demo

[\\+-/\\*] 字符类不仅仅匹配您定义的 4 个字符,因为 - 创建了 + 之间的范围/

enter image description here

您可以通过转义连字符来修复正则表达式,但是当您将 - 放在字符类的开头(或结尾)时,模式看起来更清晰,而无需转义在那里,连字符被视为文字 -

关于java - 未从 java String split 方法获得预期输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40075971/

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