import org.apache.commons.lang.StringUtils;
public class StringEmptyCompare {
String s = "";
//循环一亿次,比较效率
long n = 100000000;
//方法1
private void function1() {
//存下起始时间
long startTime = System.currentTimeMillis();
for (int i = 0; i < n; i ++) {
if (s == null || s.equals("")) ;
}
//存下结束时间
long endTime = System.currentTimeMillis();
System.out.println("方法1用时:" + (endTime - startTime) + "ms");
}
//方法2
private void function2() {
long startTime = System.currentTimeMillis();
for (int i = 0; i < n; i ++) {
if (s == null || s.length() < 1) ;
}
long endTime = System.currentTimeMillis();
System.out.println("方法2用时:" + (endTime - startTime) + "ms");
}
//方法3
private void function3() {
long startTime = System.currentTimeMillis();
for (int i = 0; i < n; i ++) {
if (s == null || s.isEmpty()) ;
}
long endTime = System.currentTimeMillis();
System.out.println("方法3用时:" + (endTime - startTime) + "ms");
}
//方法4
private void function4() {
long startTime = System.currentTimeMillis();
for (int i = 0; i < n; i ++) {
if (StringUtils.isBlank(s)) ;
}
long endTime = System.currentTimeMillis();
System.out.println("方法4-StringUtils.isBlank用时:" + (endTime - startTime) + "ms");
}
//方法4
private void function5() {
long startTime = System.currentTimeMillis();
for (int i = 0; i < n; i ++) {
if (StringUtils.isEmpty(s)) ;
}
long endTime = System.currentTimeMillis();
System.out.println("方法5-StringUtils.isEmpty用时:" + (endTime - startTime) + "ms");
}
public static void main(String[] args) {
StringEmptyCompare sec = new StringEmptyCompare();
sec.function1();
sec.function2();
sec.function3();
sec.function4();
sec.function5();
}
}
结果:
方法1用时:1156ms
方法2用时:563ms
方法3用时:671ms
方法4-StringUtils.isBlank用时:1344ms
方法5-StringUtils.isEmpty用时:719ms
可以看出,方法2效率最高;方法3与方法2效率上相差不大;方法4效率最低。
分享到:
相关推荐
在大量文件中查找字符串时,效率就显得尤为重要。这就需要用到命令行工具,如在Windows中的`findstr`命令,Linux或Unix环境下的`grep`命令。这些命令行工具可以遍历指定目录下的所有文件,查找包含特定字符串的文件...
7. **判断字符串** - `isEmpty()`:检查字符串是否为空。 - `contains(String str)`:检查字符串是否包含另一个子串。 8. **大小写转换** - `toLowerCase()` 和 `toUpperCase()`:将字符串转换为全小写或全大写...
**功能描述**:此方法用于将一个`java.util.Date`对象按照指定格式转化为字符串。 **参数说明**: - `date`:需要被转换的日期对象。 - 返回值:按照“yyyy-MM-dd HH:mm:ss”格式化的日期字符串。 **代码实现**: ...
- `startsWith(String prefix)`、`endsWith(String suffix)`:判断字符串是否以特定的前缀或后缀开始或结束。 - `regionMatches(boolean ignoreCase, int thisStart, String other, int start, int length)`:比较两...
2. 使用`contains()`方法判断字符串是否包含子串。 3. 基本的条件判断和控制流。 4. 对代码进行封装,提高可重用性。 在实际开发中,理解和掌握这些基本概念是非常重要的,因为它们构成了许多复杂功能的基础。通过...
Java程序中,字符串默认使用UTF-16编码,这是Unicode的一种实现,可以确保正确处理各种语言,包括中文。理解字符编码是解决字符乱码问题的关键。在读写文件或网络通信时,我们需要确保编码和解码的格式一致,否则...
如字符串连接(concat方法或者使用+操作符)、字符访问(charAt)、比较(compareTo和compareToIgnoreCase)、查找(indexOf和lastIndexOf)、截取(substring)、替换(replace)、格式化(format)、大小写转换...
- `isBlank`: 判断字符串是否为空,包括null和trim后的空格,如果为空则返回true。 - `isNotBlank`: 判断字符串是否非空,不包括null和trim后的空格,如果非空则返回true。 - `isEmpty`: 不考虑trim,直接检查...
- 将类名转换为C字符串格式。 - 调用defineClass()方法创建新类。 3. **附加加密**:为了进一步提高安全性,可以对已加密的文件添加额外的加密层。例如,在每个已加密的class文件末尾添加一个字节,然后在本地...
5. **`equals(Object obj)`**:判断字符串是否与指定对象相等。 - 示例:`str.equals("Hello");` 6. **`equalsIgnoreCase(String anotherString)`**:忽略大小写判断字符串是否与指定字符串相等。 - 示例:`str....
1. **空值检查**:首先判断传入的字符串是否为`null`或空字符串。如果是,则直接返回空字符串。 ```java if (data == null || "".equals(data)) { return ""; } ``` 2. **初始化变量**: - `total`:用于...
- 使用`contains`方法判断子字符串`s`是否存在于字符串`str`中。 - 如果存在,通过`indexOf`找到`s`首次出现的位置,并使用`substring`方法去除已匹配的部分,然后继续循环查找。 - 每次找到子字符串,计数器`...
- `StringUtils`:提供了一系列处理字符串的方法,如`isEmpty()`判断字符串是否为空,`join()`将对象数组合并成字符串等。 - `ArrayUtils`:提供了数组相关的操作,如`add()`向数组末尾添加元素,`isEmpty()`检查...
- Java中字符串(String)是一个不可变的对象,可以使用String类的各种方法进行字符串操作,如concat()、equals()、substring()等。 - **1.1.4 数组** - 数组是一种基本的数据结构,用于存储相同类型的元素。Java...
8. **更好的字符串处理**:`String`类增加了新的API,如`lines()`用于按行分割字符串,`strip()`和`stripIndent()`用于去除两端空白,以及`isBlank()`判断字符串是否为空或仅含空白。 9. **文件读写增强**:`Path`...
Java经典编程源码例程,可以做为你的学习设计参考。 第1章 Java语言概述 1 实例001 输出“Hello World” 2 实例002 输出控制台传递的参数 2 实例003 输出由“*”组成的三角形 3 实例004 输出符号表情 5 第2章 ...
Object类是所有Java类的基类,包含了一些通用的方法,如toString()用于返回对象的字符串表示,equals()用于比较两个对象是否相等,以及hashCode()用于生成对象的哈希值,这对于数据结构如HashMap的高效操作至关重要...
- 使用`String`类来存储字符串,可以使用`charAt()`方法获取字符串中的某个字符。 - 示例代码: ```java String a = "Hello"; char c = a.charAt(1); // 'e' ``` 通过上述介绍,我们可以看到Java不仅在ACM-...