public class CharAtStartWithDemo {
public static void main(String[] args){
//jdk8
testCharAt();//1
testStartWith();//4
}
public static void testCharAt(){
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 1000; i++) {
sb.append(i);
if (i < 999){
sb.append(",");
}
}
String s = sb.toString();
int length = s.length();
long begin = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
if (s.charAt(0)=='a'&&s.charAt(1)=='b'&&s.charAt(2)=='c'){}
if (s.charAt(length-1)=='a'&&s.charAt(length-2)=='b'&&s.charAt(length-3)=='c'){}
}
long end = System.currentTimeMillis();
System.out.println(end-begin);
}
public static void testStartWith(){
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 1000; i++) {
sb.append(i);
if (i < 999){
sb.append(",");
}
}
String s = sb.toString();
int length = s.length();
long begin = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
if (s.startsWith("abc")){}
if (s.endsWith("abc")){}
}
long end = System.currentTimeMillis();
System.out.println(end-begin);
}
}
转载于:https://www.cnblogs.com/fly-book/p/11340428.html
本文通过一个具体的Java程序,对比了使用charAt和startsWith方法在处理大量数据时的性能表现。实验中,程序创建了一个包含1000个元素的字符串,并分别使用两种方法检查字符串的开始和结束是否为特定字符序列,最后输出了两种方法的执行时间。
639

被折叠的 条评论
为什么被折叠?



