String str = [折扣] > 10 and [优惠] > 20 
怎么取出所有[]中的所有数据啊,就是取得折扣、优惠

解决方案 »

  1.   

    import java.util.ArrayList;public class TestA {
    public static void main(String[] args) {
    ArrayList<String> s = TestA.getString("[折扣] > 10 and [优惠] > 20 ", "[", "]");
    for(int i=0;i<s.size();i++){
    //System.out.println(s.get(i));
    }
    } public static ArrayList<String> getString(String str, String start,
    String end) {
    ArrayList<String> lst = new ArrayList<String>(); while (true) {
    int i = str.indexOf(start);
    int j = str.indexOf(end);
    if (i > -1 && j > -1 && i < j) {
    if (!str.substring(i+1, j).equals("")) {
    lst.add(str.substring(i+1, j));
    System.out.println(str.substring(i+1, j));
    }
    str = str.substring(j);
    } else if (i > -1 && j > -1 && i > j) {
    str = str.substring(i);
    } else {
    break;
    }
    }
    return lst;
    }
    }
      

  2.   


    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
    public class Main { 
    public static void main(String[] args) {
    String str = "[折扣] > 10 and [优惠] > 20 ";
    Pattern p = Pattern.compile("\\[.*?\\]");
    Matcher m = p.matcher(str);
    while(m.find()) {
    System.out.println(m.group());
    }
    }
     
    }输出结果:
    [折扣]
    [优惠]