一、字符串的比较方法
==是进行地址值的比较,如果确实需要字符串的内容比较,可以使用两个方法
public boolean equals(Object obj):参数可以是任何对象,只有参数是一个字符串并且内容相同的才会返回true,否则返回false
【注意事项】
1、任何对象都能用Object进行接收
2、equals方法具有对称性,也就是a.equals(b)与b.equals(a)效果一样。
3、如果比较双方一个常量一个变量,推荐把常量字符串写出前面。
public boolean equalsIgnoreCase(Object obj):不区分大小写进行比较,仅限英文字母的大小写
package Day08;
/*
==是进行地址值的比较,如果确实需要字符串的内容比较,可以使用两个方法
public boolean equals(Object obj):参数可以是任何对象,只有参数是一个字符串并且内容相同的才会返回true,否则返回false
【注意事项】
1、任何对象都能用Object进行接收
2、equals方法具有对称性,也就是a.equals(b)与b.equals(a)效果一样。
3、如果比较双方一个常量一个变量,推荐把常量字符串写出前面。
public boolean equalsIgnoreCase(Object obj):不区分大小写进行比较,仅限英文字母的大小写
*/
public class Demo01StringEquals {
public static void main(String[] args) {
String str1="Hello";
String str2="Hello";
char [] charArray= {'H','e','l','l','o'};
String str3=new String(charArray);
System.out.println(str1.equals(str2));//true
System.out.println(str2.equals(str3));//true
System.out.println(str3.equals("Hello"));//true
System.out.println("Hello".equals(str1));//true
String str4="hello";
System.out.println(str4.equals(str1));//false
String str5="abc";
System.out.println("abc".equals(str5));//推荐
System.out.println(str5.equals("abc"));//不推荐:会出现空指针异常
String strA="Java";
String strB="java";
System.out.println(strA.equals(strB));//false,严格区分大小写
System.out.println(strA.equalsIgnoreCase(strB));//true,不区分大小写
}
}
二、字符串的常用获取方法
String当中与获取相关的常用方法有:
- public int length():获取字符串当中含有的字符个数,拿到字符串长度
- public String concat(String str):将当前字符串和参数字符串拼接成为返回值新的字符串
- public char charAt(int index):获取指定索引位置的单个字符(索引从0开始)
- public int indexof(String str):查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1值
package Day08;
/*
String当中与获取相关的常用方法有:
public int length():获取字符串当中含有的字符个数,拿到字符串长度
public String concat(String str):将当前字符串和参数字符串拼接成为返回值新的字符串
public char charAt(int index):获取指定索引位置的单个字符(索引从0开始)
public int indexof(String str):查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1值
*/
public class Demo02StringGet {
public static void main(String[] args) {
//获取字符串长度
int length="sjsjjsfffskssm".length();
//拼接字符串
String str1="Hello";
String str2="World";
String str3=str1.concat(str2);
System.out.println(str3);
//获取指定索引位置的单个字符
char ch=str1.charAt(2);
System.out.println(ch);
//查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1值
String original="HelloHelloHello";
int index=original.indexOf("llo");
System.out.println("出现第一次的索引值是"+index);//2
System.out.println("HelloWorld".indexOf("abc"));//-1
}
}
三、字符串的常用截取方法
字符串的常用截取方法:
- public String substring(int index):截取从参数位置一直到字符串末尾,返回新字符串
- public String substring(int begin,int end):截取从begin开始到end结束,返回新字符串
package Day08;
/*
字符串的截取方法:
public String substring(int index):截取从参数位置一直到字符串末尾,返回新字符串
public String substring(int begin,int end):截取从begin开始到end结束,返回新字符串
*/
public class Demo03Substring {
public static void main(String[] args) {
String str1="HelloWorld";
String str2=str1.substring(5);
System.out.println(str1);//HelloWorld原字符串原封不动
System.out.println(str2);//World,新字符串
String str3=str1.substring(4,7);
//下面这种写法,字符串的内容仍然是没有改变的
//下面有两个字符串:“Hello”,“Java”
//strA当中保存的地址值
//本来地址是Hello的0x666
//后来变成了Java的0x999
String strA="Hello";
System.out.println(strA);//Hello
strA="Java";
System.out.println(strA);//Java
}
}
四、字符串常用的转换方法
String当中与转换相关的常用方法有:
- public char[] toCharArray():将当前字符串拆分成字符数组作为返回值
- public byte[] getBytes():获得当前字符串底层的字节数组
- public string replace(CharSequence oldString,CharSequence newString):
- 将所有出现的老字符串替换成新的字符串,返回替换之后的结果新字符串
备注:CharSequence意思就是可以接受字符串类型
package Day08;
/*
String当中与转换相关的常用方法有:
public char[] toCharArray():将当前字符串拆分成字符数组作为返回值
public byte[] getBytes():获得当前字符串底层的字节数组
public string replace(CharSequence oldString,CharSequence newString):
将所有出现的老字符串替换成新的字符串,返回替换之后的结果新字符串
备注:CharSequence意思就是可以接受字符串类型
*/
public class Demo04StringConvert {
public static void main(String[] args) {
//转换为字符数组
char[] chars="Hello".toCharArray();
System.out.println(chars[0]);//H
System.out.println(chars.length);//5
//转换成字节数组
byte[] bytes="abc".getBytes();
for(int i=0;i<bytes.length;i++){
System.out.println(bytes[i]);
}
//字符串的内容替换
String str1="How do you do?";
String str2=str1.replace("o", "*");
System.out.println(str1);//How do you do?
System.out.println(str2);//H*w d* y*u do?
}
}
五、字符串的分割方法
分割字符串的方法:
- public String[ ] split(String regex):按照该参数的规则,将字符串切分为若干部分
- 注意事项:splitt方法的参数regex为一个正则表达式
如果要按照英文句点中出现. 需要用参数\\.(见代码)
package Day08;
/*
分割字符串的方法:
punlic String[] split(String regex):按照参数的规则,将字符串切割为若干部分
注意事项:splitt方法的参数regex为一个正则表达式
如果要按照英文句点中出现. 需要用参数\\.
*/
public class Demo05StringSplit {
public static void main(String[] args) {
String str1="aaa,bbb,ccc";
String[]array1=str1.split(",");
for(int i=0;i<array1.length;i++) {
System.out.println(array1[i]);//aaa bbb ccc
}
String str2="aaa,bbb,ccc";
String[]array2=str2.split(",");
for(int i=0;i<array2.length;i++) {
System.out.println(array2[i]);//aaa bbb ccc
}
String str3="aaa.bbb.ccc";
String[]array3=str3.split(".");
System.out.println(array3.length);//长度为0,切失败
for(int i=0;i<array3.length;i++) {
System.out.println(array3[i]);
}//无输出
String str4="aaa.bbb.ccc";
String[]array4=str4.split("\\.");
System.out.println(array4.length);//长度为3,切成功
for(int i=0;i<array4.length;i++) {
System.out.println(array4[i]);
}//aaa bbb ccc
}
}