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

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

		
		
}	




 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值