现在的位置: 首页 > 综合 > 正文

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

2013年10月17日 ⁄ 综合 ⁄ 共 1754字 ⁄ 字号 评论关闭

/*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());
		}
	}

		
		
}	

 

抱歉!评论已关闭.