java中j将字符串分割,并保留分隔符。

比如说,一段字符串“12+40*10-25”,要以+*-为分隔符将数字存入数组,同时+*-三个分隔符也要保留,并按照原字符串的顺序插入到数组中。

按符号分隔,自己自由控制,逻辑上比较简单,代码稍有杂乱

public static void main(String[] args) {
String aString="12+40*10-25";
String[] first=aString.split("\\+");
String[] second=first[1].split("\\*");
String[] third=second[1].split("-");
System.out.println(first[0] + " " +first[1]);
System.out.println(second[0] + " " +second[1]);
System.out.println(third[0] + " " +third[1]);

System.out.println(first[0] +" + "+ second[0]+" * "+third[0]+" - "+third[1]);
}追问

我是要在不知道符号出现的次数以及位置的情况下进行分割以及存入数组。。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-08-11
可以尝试用java 的 tochararray方法,把字符串切割成字符数组追问

这样的话,如果原字符串中两个符号之间是两位或者三位整数,咋办?

追答

使用 StreamTokenizer类 的 public StringTokenizer(String str, String delim, boolean returnDelims) 方法
例子如下:

String content = "aa/blog/jetbrain/idea/2009/04/202454/";
StringTokenizer st = new StringTokenizer(content,"/",true);
System.out.println("分割后Token的个数-->" + st.countTokens());
int i = 1;
while (st.hasMoreElements()) {

String token = st.nextToken();
System.out.print(i + "." + token + " ");
i++;
}

相似回答