学习java第二周
关于String和equals
1、 首先可以在数组封装类Arrays
里面使用Arrays.equals
(需要导包import java.util.Arrays;
)
import java.util.Arrays;
public class Equals{
public static void main(String[] args){
String a="123";
String b="123";
System.out.println(Arrays.equals(a,b);
//这里用Arrays.equals会报错。
//System.out.println(a.equals(b));//如果是这样就不会报错。而且也是不需要导包的。
System.out.println(a==b);
}
输出结果:true,true。(这里按equals正常运行)
int a[]={1,2};
int b[]={2,3};
char c[]={'a','b'};
char d[]=new char[]{'a','b'};//这里测试是否new了之后就不相等了。
System.out.println(Arrays.equals(a,b));
System.out.println(Arrays.equals(c,d));
输出结果:false,true。
尝试了一些,好像Arrays的equals只用于数组,这可能就是为什么叫数组封装类吧
2、equals可用来比较字符串是否相同,一般是比较内容是否相同。
String a="123";
String b=a;//这里是测试同类型的是否可以接收数据,没报错说明是可以的。
Scanner input=new Scanner(System.in);
String x=input.nextLine();//这里的nextLine可以读入空格。
//(我可以只输入一个空格就会输出。)
if(b.equals(x)){
System.out.println(true);
}
else{
System.out.println(false);
}
然后来介绍一下String。需要注意的是类型的转换问题。
char a[]=new char []{'a','b','c'};
String b=a;//报错,char[] 无法转换成String。
char a[]=new char []{'a','b','c'};
String b=new String (a);//new 之后就可以运行了,String是可以用字符串的。
//但是其他类型的数据String也转换不来。报错找不到合适的构造器
System.out.println(b);//输出abc
if (b.equals("abc")){
System.out.println(true);
}
else{
System.out.println(false);
}
输出结果:true(if中的语句输出)
String用.length
计算长度时,空格也是会计算进去的。