首页 > 编程 > Java > 正文

java正则表达式实现提取需要的字符并放入数组【ArrayList数组去重复功能】

2019-11-26 13:16:45
字体:
来源:转载
供稿:网友

本文实例讲述了java正则表达式实现提取需要的字符并放入数组。分享给大家供大家参考,具体如下:

这里演示Java正则表达式提取需要的字符并放入数组,即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());    }  }}

输出结果为:

去除重复值前120282458120282458125826去除重复值后125826120282458

改进版:弄成一个bean:

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

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.VeVB.COm/regex/javascript

正则表达式在线生成工具:
http://tools.VeVB.COm/regex/create_reg

希望本文所述对大家java程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表