繁体   English   中英

分割表达式数组的字符串

[英]Splitting string for expressions array

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

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

您可以进行匹配或拆分。 通过拆分来了。

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, )]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM