emmmmm,今天刷力扣题1662,检查两个字符串数组是否完全相等,这时就要说说String和StringBuffer的区别了,String类对象被创建后,包含在这个对象中的字符序列是不可更改的,直到这个对象被销毁,所以使用String类没法对字符串进行频繁的增删改查的操作。要对字符串进行增删改查的话就要用到StringBuffer类,StringBuffer类提供了很多方法用来改变字符串对象的字符序列,一旦通过StringBuffer生成了最终想要的字符串序列,可以通过调用它的toString()方法,将其转化成一个String对象。
本题就是需要对字符串进行拼接,所以就使用了StringBuffer,最后还要再说下,StringBuffer类没有重写equals方法,所以要比较两个StringBuffer类的字符串,就需要将其转化成String类,使用.toString()或者new String();都可以,接下来就是力扣1662题的代码
class Solution {
public boolean arrayStringsAreEqual(String[] word1, String[] word2) {
StringBuffer s1=new StringBuffer();
StringBuffer s2=new StringBuffer();
for(String s:word1) {
s1.append(s);
}
for(String s:word2) {
s2.append(s);
}
//因为StringBuffer类没有重写equals方法,所以不能直接s1.equals(s2)
//也可以(s1.toString()).equals(s2.toString());
if(new String(s1).equals(new String(s2))) {
return true;
}
else {
return false;
}
}
}