java正则表达式提取需要的字符并放入数组;ArrayList数组去重复

来源:互联网 发布:网络负面舆情处理 编辑:程序博客网 时间:2024/04/29 21:51

/*1.java正则表达式提取需要的字符并放入数组;
 *2.ArrayList数组去重复
 *
 *
 *
 *
 *
 *
 *
 */

 

package com.test.tool;import java.util.ArrayList;import java.util.HashSet;import java.util.regex.*;public class MatchTest {public static void main(String[] args){            String regex = "[0-9]{5,12}";   String input = "QQ120282458,QQ120282458 QQ125826";            Pattern p = Pattern.compile(regex);        Matcher m = p.matcher(input);        ArrayList al=new ArrayList();        while (m.find()) {                         al.add(m.group(0));        }        System.out.println("去除重复值前");        for (int i=0;i<al.size();i++)        {        System.out.println(al.get(i).toString());        }        //去除重复值                HashSet hs=new HashSet(al);        al.clear();        al.addAll(hs);                System.out.println("去除重复值后");        for (int i=0;i<al.size();i++)        {        System.out.println(al.get(i).toString());        }        }}

输出结果为:

去除重复值前
120282458
120282458
125826
去除重复值后
125826
120282458

 

 

改进版:弄成一个bean:

 

 

/*1.提取需要的字符并放入数组; *2.ArrayList数组去重复 * *  *  *  *  *  *  */package com.test.tool;import java.util.ArrayList;import java.util.HashSet;import java.util.regex.*;public class MatchTest {private String regex;private String input;private ArrayList al;public String getRegex() {return regex;}public void setRegex(String regex) {this.regex = regex;}public String getInput() {return input;}public void setInput(String input) {this.input = input;}public ArrayList getAl() {return al;}public void setAl(ArrayList al) {this.al = al;}public MatchTest(String regex,String input){Pattern p=Pattern.compile(regex);Matcher m=p.matcher(input);ArrayList myal=new ArrayList();while (m.find()){myal.add(m.group());}HashSet hs=new HashSet(myal);myal.clear();myal.add(hs);this.setRegex(regex);this.setInput(input);this.setAl(myal);}public MatchTest(){}public static void main(String[] args){ String regex1 = "[0-9]{5,12}"; String input1="QQ120282458,QQ120282458 QQ125826"; //String input1="QQ";MatchTest mt=new MatchTest(regex1,input1);for (int i=0;i<mt.getAl().size();i++){System.out.println(mt.getAl().get(i).toString());}}}




 

原创粉丝点击