一个字符串:String str = "100<n<1000";
或 str = "100≤n≤1000";
或 str = "100≤n<1000";
或 str = "100<n≤1000";
其中<和≤这2中是任意的,
我想把上面几种情况分割成: 100, <, n, <, 1000 这种样子。

解决方案 »

  1.   

    如果正则的话regex="(.*?)(<)|(.*?)(≤)";
    提取的时候提取两个获取组。
      

  2.   

    用StringBuilder在字符串中的<或<=两边插入,字符
      

  3.   

    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)); }
      

  4.   

    str.split("(?=[≤<])|(?<=[≤<])")