1、治口吃
将字符串中重复的字符变成不重复,去掉多余的字符
private static void test_1() {
String str="我我...我我...我我我要...要要要要...要要要要..学学学学学...学学编编...编编编编..编..程程...程程...程程程";
//1、将字符串中的"." 去掉。 使用正则\\.
str= str.replaceAll("\\.", "");
System.out.println(str);
//2、取出重复字符
str=str.replaceAll("(.)\\1+","$1");
System.out.println(str);
}
2、IP地址排序。
按照开头数字从小到大排序
/**
* IP地址排序
* 192.168.10.34
* 127.0.0.1
* 3.3.3.3
* 105.70.11.55
*
* 开头数字小的在前面。
*
*/
private static void test_2() {
String str="192.168.10.34 127.0.0.1 3.3.3.3 105.70.11.55";
//1、为了让ip可以按照字符串顺序比较,只要让ip的每一段的位数相同。
//所以,补零,按照每一位所需做多0进行补充。每一段都加两个0.
str=str.replaceAll("(\\d+)","00$1");
System.out.println(str);
//2、然后每一段保留数字3位。
//0或者任意数字保留三位,输出这三位
str=str.replaceAll("0*(\\d{3})","$1");
System.out.println(str);
//3、将ip地址切出。
String[] ips = str.split(" +");
//4、将ip放入TreeSet中自动排序
TreeSet<String> ts = new TreeSet<String>();
for(String ip : ips){
ts.add(ip);
}
for(String ip : ts){
//5、输出除去多余的0 将0开头的部分去除只留下纯数字的
System.out.println(ip.replaceAll("0*(\\d+)", "$1"));
}
}
3、邮件地址校验
/**
* 校验邮箱地址
*/
private static void test_3() {
String mail="[email protected]";
/**
* [a-zA-Z0-9_]+ @符号前面的字符串有字母数组组成,出现一次或多次 一般为邮箱号正文
* "@" 固定的邮箱@符号
* [a-zA-Z0-9_]+ 邮箱组织名可由字母数组下划线组成 一般为qq、163、123 等
* \\. 固定分割副
* [a-zA-Z]{1,3} 机构类别 常见有 com、cn、edu等
* + 表示com等可多次出现
*/
String regex="[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\\.[a-zA-Z]{1,3})+";
boolean b = mail.matches(regex);
System.out.println(mail+":"+b);
}
4、爬虫
爬墙本地源文件中的邮箱
public static List<String> getMails() throws IOException{
//1,读取源文件。
BufferedReader bufr = new BufferedReader(new FileReader("c:\\mail.html"));
//2,对读取的数据进行规则的匹配。从中获取符合规则的数据.
String mail_regex = "\\w+@\\w+(\\.\\w+)+";
List<String> list = new ArrayList<String>();
Pattern p = Pattern.compile(mail_regex);
String line = null;
while((line=bufr.readLine())!=null){
Matcher m = p.matcher(line);
while(m.find()){
//3,将符合规则的数据存储到集合中。
list.add(m.group());
}
}
return list;
}
2、爬取网络中网页中的邮箱
public static List<String> getMailsByWeb() throws IOException {
//1,读取源文件。
//BufferedReader bufr = new BufferedReader(new FileReader("c:\\mail.html"));
URL url = new URL("http://192.168.1.100:8080/myweb/mail.html");
BufferedReader bufIn = new BufferedReader(new InputStreamReader(url.openStream()));
//2,对读取的数据进行规则的匹配。从中获取符合规则的数据.
String mail_regex = "\\w+@\\w+(\\.\\w+)+";
List<String> list = new ArrayList<String>();
Pattern p = Pattern.compile(mail_regex);
String line = null;
while((line=bufIn.readLine())!=null){
Matcher m = p.matcher(line);
while(m.find()){
//3,将符合规则的数据存储到集合中。
list.add(m.group());
}
}
return list;
}
测试:
public static void main(String[] args) throws IOException {
List<String> list = getMailsByWeb();
for(String mail : list){
System.out.println(mail);
}
}