编写程序比较两个String的内容是否相等;遍写程序循环10000次,测试String与StringBuffer改变内容时他它之间速度的比较
时间: 2024-02-22 18:59:53 浏览: 30
好的,我会回答你的问题。
第一个问题:编写程序比较两个String的内容是否相等。
实现这个功能很简单,可以使用String类提供的equals方法。该方法会比较两个字符串的内容是否相同,如果相同则返回true,否则返回false。
示例代码:
```java
String str1 = "hello";
String str2 = "world";
if(str1.equals(str2)){
System.out.println("两个字符串相等");
}else{
System.out.println("两个字符串不相等");
}
```
第二个问题:编写程序循环10000次,测试String与StringBuffer改变内容时他它之间速度的比较。
实现这个功能需要使用System.currentTimeMillis()方法来计算程序执行的时间。具体实现方式如下:
```java
public static void main(String[] args){
String str = "";
long startTime = System.currentTimeMillis(); //获取开始时间
for(int i=0;i<10000;i++){
str += i;
}
long endTime = System.currentTimeMillis(); //获取结束时间
System.out.println("String消耗时间:" + (endTime - startTime) + "ms");
StringBuffer sBuffer = new StringBuffer("");
startTime = System.currentTimeMillis(); //获取开始时间
for(int i=0;i<10000;i++){
sBuffer.append(i);
}
endTime = System.currentTimeMillis(); //获取结束时间
System.out.println("StringBuffer消耗时间:" + (endTime - startTime) + "ms");
}
```
通过以上代码可以看出,在字符串拼接方面,StringBuffer的效率要高于String。这是因为StringBuffer是线程安全的,而String是不可变的,每次修改都需要重新创建一个新的String对象,因此效率较低。