日期:2014-05-17  浏览次数:20917 次

一个字符串的分割。
一个字符串:

String str = "100<n<1000";
或 str = "100≤n≤1000";
或 str = "100≤n<1000";
或 str = "100<n≤1000";


其中<和≤这2中是任意的,
我想把上面几种情况分割成: 100, <, n, <, 1000 这种样子。

------解决方案--------------------
如果正则的话regex="(.*?)(<)
------解决方案--------------------
(.*?)(≤)";
提取的时候提取两个获取组。
------解决方案--------------------
用StringBuilder在字符串中的<或<=两边插入,字符。。。
------解决方案--------------------
public static void main(String[] arg) {
String intputStr = "100≤n<1000";
String arr[] = intputStr.split("[<≤]");
String regexArr[] = intputStr.split("n");
StringBuilder sbBuilder = new StringBuilder();
List<String> regexList = new ArrayList<String>();
for (String s : regexArr) {
if (s.contains("<")) {
regexList.add("<");
} else if (s.contains("≤")) {
regexList.add("≤");
}
}
int listIndex = 0;
for (int i = 0; i < arr.length; i++) {
sbBuilder.append(arr[i]).append(",");
if (regexList.size() - 1 >= listIndex) {
sbBuilder.append(regexList.get(listIndex)).append(",");
}
listIndex++;
}
System.out.println(sbBuilder.toString().substring(0,
sbBuilder.toString().length() - 1));

}

------解决方案--------------------
str.split("(?=[≤<])
------解决方案--------------------
(?<=[≤<])")