性能比较:
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======
分享到:
相关推荐
通过以上介绍,我们可以看到使用正则表达式和内置字符串方法都可以有效地实现 `startWith()` 和 `endWith()` 功能。每种方法都有其适用场景: - 正则表达式简洁明了,但在某些情况下性能可能不如内置方法。 - 内置...
8. **效率与性能**:正则表达式虽然强大,但在大量字符串处理时可能会比直接的字符串操作慢。对于简单情况,可以考虑使用`InStr`和`Mid`等函数配合循环来逐个处理括号。 9. **错误处理**:在编写代码时,确保处理...
1. 使用正则表达式实现`startsWith`: ```javascript String.prototype.startsWith = function(str) { var reg = new RegExp("^" + str); return reg.test(this); } ``` 这里,我们创建了一个新的正则表达式...
// 使用正则表达式实现endWith String.prototype.endWith = function(str) { var reg = new RegExp(str + "$"); return reg.test(this); }; ``` 这两种正则表达式的方法也能达到同样的效果,但需要注意的是,虽然...
在Delphi编程环境中,开发人员经常需要处理字符串的自动匹配功能,这在用户输入时尤其常见,例如在搜索框、...通过结合字符串操作、事件驱动编程、正则表达式以及性能优化,你可以构建出高效且用户友好的自动匹配系统。
9. **正则表达式与字符串** - `str.match(regexp)`:查找匹配正则表达式的部分,返回数组或null。 - `str.search(regexp)`:查找匹配正则表达式的第一处,返回索引或-1。 - `str.replace(regexp|substr, ...
StringUtils.trim("text with space at end"); ``` - **类定义**:定义一个静态方法用于实现字符串去空操作。 ```as3 public static function trim(s:String):String { var trimmed:String; // 实现细节 ...
以上就是对 Java 中 `String` 类的主要函数的总结,包括了字符串的创建、连接、获取信息、各种操作方法以及格式化和正则表达式的使用等内容。这些知识点对于日常开发非常重要,希望对你有所帮助。
从提供的文件内容中,我们可以抽取出关于如何使用Python语言实现搜索本地文本文件内容脚本的相关知识点。...对于高级用户,可以在此基础上增加更多功能,比如支持正则表达式搜索、多线程搜索优化性能等。
2. **正则表达式**:使用正则表达式可以更精确地匹配字符串,如区分大小写、匹配模式等。 3. **并行处理**:如果文件过大,可以将文件分割成多个部分,用多线程或分布式系统并行查找。 总结,查找长文件中的特定...
除了这些方法,还有许多其他用于处理字符串的方法,如`padStart()`, `padEnd()`用于填充字符串,`match()`, `search()`用于正则表达式匹配,以及`lastIndexOf()`, `trimLeft()`, `trimRight()`等。熟练掌握这些方法...
- `split(String regex)`按正则表达式分割字符串,返回字符串数组。 - `substring(int begin)`和`substring(int begin, int end)`用于截取字符串的子串。 7. **排序与比较**: - `compareTo(String another...
在Oracle数据库中,进行多个字符替换通常涉及到字符串处理函数,如`REPLACE()`函数或正则表达式。这里的问题是需要将`B_TEST`表中的`ELEMENT_ID`字段的值在`A_TEST`表的`FORMULA_DET`字段中替换为对应的`NAME`字段的...
- `split(regex)`: 使用正则表达式分割字符串,返回一个字符串数组。 6. **子串**: - `substring(begin)`, `substring(begin, end)`: 获取从指定位置开始到结束的新字符串。 7. **转换,去除空格,比较**: - ...
这里提到的".NET4"框架是.NET Framework的一个版本,它包含了大量用于字符串操作的类库,如System.Text.RegularExpressions,提供强大的正则表达式支持。 在描述中提到的"简单库"可能是开发者为实现自定义字符串...
### 二、字符串与正则表达式 #### 1. 字符串不可变性 - **String 类**:由于 `String` 类内部不提供修改其内容的方法,因此它是不可变的。 - **修改字符串变量**:可以通过重新赋值的方式修改字符串变量所引用的...
9. `split(String regex)`: 使用正则表达式分割字符串。 10. `replace(char oldChar, char newChar)`: 替换所有出现的旧字符为新字符。 11. `isEmpty()`: 如果字符串长度为0,返回`true`。 12. `indexOf(char ch)`: ...
3. **图片格式支持扩展**:目前仅支持四种常见格式,可以考虑使用正则表达式或其他方式扩展支持更多的图片格式。 4. **用户交互**:增加用户交互界面,让用户能够选择图片插入的位置、尺寸调整方式等,提高灵活性。 ...