解决方案 »
- 用eclipse配置hibernate出现告警
- myeclipse6.5 myeclipse 7.0 add struts 灰色 点不了,添加不上
- java技术交流群87540701
- struts2页面怎么建立联系
- 怎样的开发才是合理的???
- java导出csv文件 如何使用浏览器下载框
- 【高手指点迷津】J2EE是什么?
- Tomcat5与Tomcat4的区别
- 初来这欢迎,先向大家问个好,希望大家以后多多关照!我是初学者,用Jbuilder几好,哪有下载,还有哪有java书籍下载,介绍一些好的网站,
- 在Eclipse中编写程序,关于String类型向int转换的方法。
- spring mvc 获取不到session
- Spring的Filter问题
Pattern p = Pattern.compile(find);
Matcher matcher = p.matcher("[hostid]_[processid]_20150505_121315_456_01.csv[hostid]_[processid]_20150505_121315_456_02.csv");
while (matcher.find()) {
System.out.println(matcher.group(1));
} }
Pattern p = Pattern.compile(find);
Matcher matcher = p.matcher("[hostid]_[processid]_20150505_121315_456_01.csv[hostid]_[processid]_20150505_121315_456_02.csv");
while (matcher.find()) {
System.out.println(matcher.group(1));
}
System.out.println("-----------");
String s="[hostid]_[processid]_20150505_121315_456_01.csv";
System.out.println(s.substring(s.indexOf("_",s.indexOf("_", 1)+1)+1, s.lastIndexOf(".")));
System.out.println("-----------");
System.out.println(s.replaceAll(".*_(\\d{8}.*?)\\.csv", "$1"));
}
LZ可以试试,直接截取和正则表达式获取,分别循环10000次同样的字符串,看看哪个耗时少。public class PatternTest { public static void main(String[] args) {
testPattern();
testSubStr();
} // 1w次正则表达式操作耗时
public static void testPattern() {
String str = "[hostid]_[processid]_20150505_121315_456_01.csv"; String find = "_(\\d{8}.*?)\\.csv";
Pattern p = Pattern.compile(find); long curMillis = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
Matcher matcher = p.matcher(str);
while (matcher.find()) {
String result = matcher.group(1);
// System.out.println(matcher.group(1));
}
}
System.out.println("testPattern cost (ms):"
+ (System.currentTimeMillis() - curMillis));
} // 1w次字符串操作耗时
public static void testSubStr() {
String str = "[hostid]_[processid]_20150505_121315_456_01.csv"; long curMillis = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
StringBuilder sBuilder = new StringBuilder(str);
sBuilder.delete(0, sBuilder.indexOf("_") + 1);
sBuilder.delete(0, sBuilder.indexOf("_") + 1);
String result = sBuilder.substring(0, sBuilder.indexOf("."));
// System.out.println(result);
}
System.out.println("testSubStr cost (ms):"
+ (System.currentTimeMillis() - curMillis));
}
}