java 正则表达式工具类
//使用abstract目的是为了让使用者只能调用getInstance获取实例
public abstract class RegexUtil {
public static void main(String[] args) {
RegexUtil ru = RegexUtil.getInstance();
String regexp = "(\\d+.\\d+.\\d+.\\d+):(\\d+)";
String data = "ldap://192.168.16.152:389/";
System.out.println(">>>" + ru.matchGroup(regexp, data).size());
}
public List<String> matchGroup(String regexp, String data) {
Pattern p = Pattern.compile(regexp);
Matcher matcher = p.matcher(data);
List<String> list = null;
while (matcher.find()) {
int length = matcher.groupCount();
list = new java.util.ArrayList<String>(length);
for (int i = 1; i < length + 1; i++) {
list.add(matcher.group(i));
}
}
return list;
}
private static RegexUtil ru = null;
//单太模式
public static RegexUtil getInstance() {
if (ru == null) {
ru = new RegexUtil() {
};
}
return ru;
}
}
相关文档:
List的用法
List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法,如表1所示。
表1 List接口定义的常用方法及功能
从表1可以看出,List接口提供的适合于自身的 ......
与谜题26和27中的程序一样,下面的程序有一个单重的循环,它记录迭代的次数,并在循环终止时打印这个数。那么,这个程序会打印出什么呢?
public class Count {
public static void main(String[] args) {
final int START = 2000000000;
int count = 0;
for (float f = START; f < S ......
下面的程序在模仿一个简单的时钟。它的循环变量表示一个毫秒计数器,其计数值从0开始直至一小时中包含的毫秒数。循环体以定期的时间间隔对一个分钟计数器执行增量操作。最后,该程序将打印分钟计数器。那么它会打印出什么呢?
public class Clock {
public static void main(String[] args) {
int minutes ......
本谜题测试的是你对某些规则的掌握程度,这些规则用于声明从方法中抛出并被catch语句块所捕获的异常。下面的三个程序每一个都会打印些什么?不要假设它们都可以通过编译:
import java.io.IOException;
public class Arcane1 {
public static void main(String[] args) {
try {
System.out.p ......
下面的方法将一个文件拷贝到另一个文件,并且被设计为要关闭它所创建的每一个流,即使它碰到I/O错误也要如此。遗憾的是,它并非总是能够做到这一点。为什么不能呢,你如何才能订正它呢?
static void copy(String src, String dest) throws IOException {
InputStream in = null;
OutputStream out = n ......