目录
方法 | 功能 |
str1.equals(str2) | 判断两个字符串是否具有相同的值 |
str1.equalsIgnoreCase(str2) | 在忽略字符串中大小写的情况下判断字符串是否有相同的值 |
str.startsWith(str1) | 判断字符串的开始是否为str1,返回真假,大小写会影响 |
str.endsWith(str1) | 判断字符串的结尾是否为str1,返回真假,大小写会影响 |
str.contains(str1) | 判断字符串中是否包含str1,返回真假,大小写有影响 |
字符串的子串的获取
java中字符类型char用于表示单个字符,用单引号括住,给char类型赋值不能用双引号。如果是双引号则是一个字符串。String类下有个方法叫做substring(begin,end); 可以从原字符串中提取出一个子字符串。
public static void main(String[] args) {
//char ch = "C";错误示范
char ch1 = 'C';
String str = "string in java";
String newstr = str.substring(1,5);//返回trin
System.out.println(newstr);
}
字符和Unicode
java的字符类型其实可以说是Unicode字符序列。在使用char类型时,如果在变量上使用自增自减时,会得到前一个或后一个 Unicode字符。如果直接在变量上进行加减操作时,会输出一个十进制的编码值。
字符 十进制编码 ‘0’ 到 ‘9’ 48-57 ‘A’ 到 ‘Z’ 65到90 ‘a' 到 ‘z’ 97到122
public static void main(String[] args) {
char ch1 = 'A';//十进制编码值为65
System.out.println(++ch1);//返回B
System.out.println(--ch1);//返回A
//此时ch1 = 'A'
System.out.println(ch1+0);//65
System.out.println(ch1+1);//66
System.out.println(ch1+2);//67
}
因为这些编码(Unicode)的存在,字符和字符之间可以直接进行比较的,这里‘a'的十进制编码是97,’A'的十进制编码是65,所以‘a’<'A' 返回false
public static void main(String[] args) {
System.out.println('a'<'A');//返回false
}
比较字符串(==和equal()的区别)
在进行字符串的比较时务必使用equal() 而不是 == !!!
==操作符检查两个字符串是否完全相同的对象,并不会得出内容是否相等,所以不能用==来比较两个字符串。
.equl()检查两个字符串是否具有相同的值
.equalsIgnoreCase 会忽略大小写的不同
public static void main(String[] args) {
String str1 = "hello world";
String str2 = "hello world";
String str_new1 = new String("haha");
String str_new2 = new String("haha");
String str_new3 = new String("HAHA");
//这里str1和str2在字符串池中指向的是同一个对象,所以会返回true
System.out.println(str1 == str2);//true
//因为new String会在堆中指向的不是同一个对象,所以返回false
System.out.println(str_new1 == str_new2);//false
//字符串比较的正确方式
//.equal将检查两个字符串是否具有相同的值.所以返回true
System.out.println(str_new1.equals(str_new2));//true
//在使用这个方法的时候,可以忽略字符串的大小写
System.out.println(str_new1.equalsIgnoreCase(str_new3));
}
还有很多可以用来判断字符串的方法
public static void main(String[] args) {
String str= "String in java";
//判断字符串的开始
System.out.println(str.startsWith("java"));//false
System.out.println(str.startsWith("Str"));//true
//判断字符串的结尾
System.out.println(str.endsWith("vva"));//false
System.out.println(str.endsWith("va"));//true
//判断字符串是否包含
System.out.println(str.contains("python"));//false
System.out.println(str.contains("jav"));//true
}