1.字符串的内容永远不变。(这点决定了它可以共享)
2.字符串的效果上等同于char[ ]字符数组。底层原理是byte[ ] 字节数组。
3. equals方法:(严格区分大小写)
3.1:public boolean equals(Object obj)参数可以是任何对象
3.2:equals方法具有对称性,也就是a.equals(b) 和 b.equals(a)效果一样
3.3:如果比较双方一个是常量一个是变量,那么推荐 “abc”.equals(str)【因为不会报空指针异常】
equalsIgnoreCase(String str)方法:(忽略大小写)
代码演示:
public class StringMethod {
public static void main(String[] args) {
String str1 ="Hello";
String str2 ="World";
String str3 ="Hello";
String str4 ="hello";
String str5 ="我爱中国";
System.out.println("======================================");
System.out.println(str1.equals(str3));
System.out.println(str3.equals(str1));
System.out.println(str1.equals(str4));
System.out.println(str1.equalsIgnoreCase(str4)); //忽略大小写
System.out.println("Hello".equals(str1)); //推荐写法
System.out.println("======================================");
}
}
4.其他方法:
4.1:public int length():获取字符串当中含有的个数,得到字符串长度值
4.2:public String concat(String str):将当前字符串和str拼接形成新的字符串返回(原本字符串不会变)
4.3:public char charAt(int index):获取指定索引位置的单个字符(索引从0开始)
4.4:public int indexOf(String str):查找参数字符串在本字符串中首次出现的位置,没有则返回-1
代码示例:
public class StringMethod {
public static void main(String[] args) {
String str1 ="Hello";
String str2 ="World";
String str3 ="Hello";
String str4 ="hello";
String str5 ="我爱中国";
System.out.println("======================================");
System.out.println(str1.equals(str3));
System.out.println(str3.equals(str1));
System.out.println(str1.equals(str4));
System.out.println(str1.equalsIgnoreCase(str4)); //忽略大小写
System.out.println("Hello".equals(str1)); //推荐写法
System.out.println("======================================");
String strA ="this a java programmer";
int length = strA.length();
System.out.println("字符串的长度是:" + length);
System.out.println("======================================");
String strCat = str1.concat(str2);
System.out.println(str1 +" " + str2 +" " + strCat);
System.out.println("======================================");
char ch = str1.charAt(1);
System.out.println("得到的字符是:" + ch); //得到字符e
System.out.println("======================================");
//查找参数字符串在本来字符串的出现的第一次索引位置
//如果找不到,则返回-1
String strSearch ="java";
int seat = strA.indexOf(strSearch);
System.out.println("参数java的第一次位置是:" + seat);
System.out.println(strA.indexOf("an"));
}
}
5.字符串截取:
5.1:public String substring(int index):截取字符串一直到末尾。
5.2:public String substring(int begin ,int end):截取从begin 开始,到end结束的字符串(左闭右开)
6.字符串转换:
6.1:public char[ ] toCharArray():将当前字符串拆分成字符数组
6.2:public String replace(CharSequence oldString,CharSequence newString)替换字符串
7.字符串分割:
7.1:public String[ ] split(String regex)按照参数的规则,将字符串划分成几部分(regex:正则表达式)
代码示例:
public class StringMethod2 {
public static void main(String[] args) {
String strA ="this a java programmer";
String strB = strA.substring(7);
System.out.println(strA);
System.out.println(strB);
System.out.println("======================================");
String strC = strA.substring(7,11); //左闭右开
System.out.println(strC);
System.out.println("======================================");
char[] chars = strA.toCharArray();
System.out.println(chars.length);
System.out.println(chars[5]);
System.out.println("======================================");
String strNew = strA.replace("this","that");
System.out.println(strA);
System.out.println(strNew);
//屏蔽关键词
String strOne ="你个傻逼,无敌傻逼!!";
String strPinBi = strOne.replace("傻逼","***");
System.out.println(strOne);
System.out.println(strPinBi);
System.out.println("======================================");
//split方法适用:
String str1 ="AAA,BBB,CCC,DDD";
String[] str2 = str1.split(",");
//foreach语句:
for(String s:str2){
System.out.println(s);
}
//正则的".",需要用“\\.”来划分
String str3 ="AAA.BBB.CCC";
String[] str4 = str3.split("\\.");
for (int i =0; i < str4.length; i++) {
System.out.println(str4[i]);
}
System.out.println("======================================");
}
}