繁体   English   中英

java字符串拆分成数组,如何保存到同一个数组中的字符串?

[英]java string split into array, how to save into the same array the char im splitting with?

例如: strEquation="36+5-8X2/2.5"

我的代码是:

String[] tmp = strEquation.split("[X\\+\\-\\/]+");

for(int i=0; i<tmp.length; i++)
    Log.d("Split array",tmp[i]);

和我的输出,我认为它将是:

36
5
8
2
2.5

我想要tmp字符串数组也会放入我正在分裂的char,如下所示:

tmp[0] = 36
tmp[1] = +
tmp[2] = 5
tmp[3] = -
tmp[4] = 8
tmp[5] = X
tmp[6] = 2
tmp[7] = /
tmp[8] = 2.5

知道怎么做吗?

如何在每个X + - /字符之前或之后拆分? 顺便说一句,你不必在字符类( [...] )中转义+/

String[] tmp = strEquation.split("(?=[X+\\-/])|(?<=[X+\\-/])");

似乎可以做到这一点。

我会说你试图获得所有的匹配,而不是分裂字符串

Matcher m = Pattern.compile("[X+/-]|[^X+/-]+").matcher(strEquation);
while (m.find()) {
  System.out.println(m.group());
}

但上面的答案更聪明:)

另外:你不需要在方括号内转义+/ chars; 减号( - )只有在列表中不是第一个或最后一个字符时才需要转义

暂无
暂无

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

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