`
carver
  • 浏览: 50260 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

正则表达式与EndWith的性能比较

    博客分类:
  • Java
阅读更多

性能比较:

 

	public static void main(String[] args) throws Exception {
		System.out.println("======Begin Test======");
		test1();
		test2();
		System.out.println("======End Test======");
	}

	public static void test1() {
		Pattern pattern = Pattern.compile("\\.(jpg|png|gif)$", Pattern.CASE_INSENSITIVE);
		String fileName = "agifpngjpgb.GIF";

		long begin = System.currentTimeMillis();
		for (int i = 1000000; i > 0; i--) {
			Matcher matcher = pattern.matcher(fileName);
			matcher.find();
		}
		long end = System.currentTimeMillis();
		System.out.println("regexp: " + (end - begin));
	}

	public static void test2() {
		String[] suffixs = { "jpg", "png", "gif" };
		String fileName = "agifpngjpgb.GIF";
		String temp = null;

		long begin = System.currentTimeMillis();
		for (int i = 1000000; i > 0; i--) {
			temp = fileName.toLowerCase();
			check1(suffixs, temp);
		}
		long end = System.currentTimeMillis();
		System.out.println("endwith: " + (end - begin));
	}

	private static boolean check1(String[] suffixs, String fileName) {
		for (String suffix : suffixs) {
			if (fileName.endsWith(suffix)) {
				return true;
			}
		}
		return false;
	}
 

运行结果:

======Begin Test======
regexp: 578
endwith: 359
======End Test======

 

分享到:
评论

相关推荐

    javascript自定义startWith()和endWith()的两种方法.docx

    通过以上介绍,我们可以看到使用正则表达式和内置字符串方法都可以有效地实现 `startWith()` 和 `endWith()` 功能。每种方法都有其适用场景: - 正则表达式简洁明了,但在某些情况下性能可能不如内置方法。 - 内置...

    vb6删除字符串括号及里面内容

    8. **效率与性能**:正则表达式虽然强大,但在大量字符串处理时可能会比直接的字符串操作慢。对于简单情况,可以考虑使用`InStr`和`Mid`等函数配合循环来逐个处理括号。 9. **错误处理**:在编写代码时,确保处理...

    javascript中的startWith和endWith的几种实现方法

    1. 使用正则表达式实现`startsWith`: ```javascript String.prototype.startsWith = function(str) { var reg = new RegExp("^" + str); return reg.test(this); } ``` 这里,我们创建了一个新的正则表达式...

    浅谈js中startsWith 函数不能在任何浏览器兼容的问题

    // 使用正则表达式实现endWith String.prototype.endWith = function(str) { var reg = new RegExp(str + "$"); return reg.test(this); }; ``` 这两种正则表达式的方法也能达到同样的效果,但需要注意的是,虽然...

    Delphi自动匹配输入的字符串

    在Delphi编程环境中,开发人员经常需要处理字符串的自动匹配功能,这在用户输入时尤其常见,例如在搜索框、...通过结合字符串操作、事件驱动编程、正则表达式以及性能优化,你可以构建出高效且用户友好的自动匹配系统。

    JS——字符串

    9. **正则表达式与字符串** - `str.match(regexp)`:查找匹配正则表达式的部分,返回数组或null。 - `str.search(regexp)`:查找匹配正则表达式的第一处,返回索引或-1。 - `str.replace(regexp|substr, ...

    flex优化全集 flex优化全集

    StringUtils.trim("text with space at end"); ``` - **类定义**:定义一个静态方法用于实现字符串去空操作。 ```as3 public static function trim(s:String):String { var trimmed:String; // 实现细节 ...

    JAVA string函数总结.docx

    以上就是对 Java 中 `String` 类的主要函数的总结,包括了字符串的创建、连接、获取信息、各种操作方法以及格式化和正则表达式的使用等内容。这些知识点对于日常开发非常重要,希望对你有所帮助。

    python实现搜索文本文件内容脚本

    从提供的文件内容中,我们可以抽取出关于如何使用Python语言实现搜索本地文本文件内容脚本的相关知识点。...对于高级用户,可以在此基础上增加更多功能,比如支持正则表达式搜索、多线程搜索优化性能等。

    如何在一个长文件中查找某一个特定的字符串 (2KB)...

    2. **正则表达式**:使用正则表达式可以更精确地匹配字符串,如区分大小写、匹配模式等。 3. **并行处理**:如果文件过大,可以将文件分割成多个部分,用多线程或分布式系统并行查找。 总结,查找长文件中的特定...

    Web开发入门系列教程

    除了这些方法,还有许多其他用于处理字符串的方法,如`padStart()`, `padEnd()`用于填充字符串,`match()`, `search()`用于正则表达式匹配,以及`lastIndexOf()`, `trimLeft()`, `trimRight()`等。熟练掌握这些方法...

    String类的笔记

    - `split(String regex)`按正则表达式分割字符串,返回字符串数组。 - `substring(int begin)`和`substring(int begin, int end)`用于截取字符串的子串。 7. **排序与比较**: - `compareTo(String another...

    oracle 多个字符替换实现

    在Oracle数据库中,进行多个字符替换通常涉及到字符串处理函数,如`REPLACE()`函数或正则表达式。这里的问题是需要将`B_TEST`表中的`ELEMENT_ID`字段的值在`A_TEST`表的`FORMULA_DET`字段中替换为对应的`NAME`字段的...

    毕向东Java笔记(四)String类,包装类1

    - `split(regex)`: 使用正则表达式分割字符串,返回一个字符串数组。 6. **子串**: - `substring(begin)`, `substring(begin, end)`: 获取从指定位置开始到结束的新字符串。 7. **转换,去除空格,比较**: - ...

    使用自定义模式进行字符串解析

    这里提到的".NET4"框架是.NET Framework的一个版本,它包含了大量用于字符串操作的类库,如System.Text.RegularExpressions,提供强大的正则表达式支持。 在描述中提到的"简单库"可能是开发者为实现自定义字符串...

    CORE JAVA总结_沈红喜

    ### 二、字符串与正则表达式 #### 1. 字符串不可变性 - **String 类**:由于 `String` 类内部不提供修改其内容的方法,因此它是不可变的。 - **修改字符串变量**:可以通过重新赋值的方式修改字符串变量所引用的...

    【Java基础笔记】String类以及StringBuffer Builder.docx

    9. `split(String regex)`: 使用正则表达式分割字符串。 10. `replace(char oldChar, char newChar)`: 替换所有出现的旧字符为新字符。 11. `isEmpty()`: 如果字符串长度为0,返回`true`。 12. `indexOf(char ch)`: ...

    excel链接转图片

    3. **图片格式支持扩展**:目前仅支持四种常见格式,可以考虑使用正则表达式或其他方式扩展支持更多的图片格式。 4. **用户交互**:增加用户交互界面,让用户能够选择图片插入的位置、尺寸调整方式等,提高灵活性。 ...

Global site tag (gtag.js) - Google Analytics