gpt4 book ai didi

java - 拆分表达式数组的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 13:58:23 25 4
gpt4 key购买 nike

我试图将字符串拆分为数字和运算符数组,例如从 "2.1+(sin 2)" 获取 ["2.1", "+", "(", "sin", "2", ")"]

如何正确解决这个问题?我尝试使用 java.util.regex.Pattern,但我不知道如何提取所有合适的元素。

最佳答案

您可以进行匹配或拆分。这是通过 split 实现的。

String s = "2.1+(sin 2)";
String parts[] = s.split("\\s+|(?=[^.\\w\\s])|(?<=[^.\\w\\s])");
System.out.println(Arrays.toString(parts));

通过使用 Pattern 和 Matcher 类进行匹配。

String s = "2.1+(sin 2)";
ArrayList<String> lst = new ArrayList<String>();
Matcher m = Pattern.compile("\\d+(?:\\.\\d+)?|[a-zA-Z]+|[^\\s\\w\\.]").matcher(s);
while(m.find())
{
lst.add(m.group());
}
System.out.println(lst);

输出:

[2.1, +, (, sin, 2, )]

关于java - 拆分表达式数组的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29579174/

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