🔥博客主页🔥:【 坊钰_CSDN博客 】
欢迎各位点赞👍评论✍收藏⭐
1. String 的地位
在Java 编程中,字符串的使用是非常频繁的,而字符串的使用有离不开 String类 ,在开发和面试中String类也是非常常见的,所以String类在Java编程中的地位是非常高的!
2. String类的常用方法
2.1 字符串的构造
String类的字符串构造方式有三种
public class Test {public static void main(String[] args) {//常量字符串构造String s1 = "Hello";//new 对象创造String s2 = new String("Hello");//通过字符串数组创建char[] chars = {'H','e','l','l','o'};}
}
注意:被 “ ” 引用起来的也是String类的对象
//求字符串的长度
System.out.println("Hello".length());
2.2 String类对象的比较
两个字符串的比较一般分为两种情况
2.2.1 比较引用的两个对象是否一致
public class Test {public static void main(String[] args) {String s1 = "Hello";String s2 = "World";String s3 = s1;System.out.println(s1 == s2); //falseSystem.out.println(s1 == s3); //true}
}
用 == 比较的是两个对象的地址,与它们指向的内容无关
2.2.2 比较指向的内容是否一致
public class Test {public static void main(String[] args) {String s1 = "Hello";String s2 = "World";String s3 = "Hello";System.out.println(s1.equals(s2)); //falseSystem.out.println(s1.equals(s3)); //true}
}
用String类的的方法equals方法来比较引用指向的内容是否一致
2.2.3 比较String类的大小
public class Test {public static void main(String[] args) {String s1 = "Hello";String s2 = "World";String s3 = "Hello";String s4 = "zoo";System.out.println(s1.compareTo(s2)); //返回值大于 0System.out.println(s1.compareTo(s3)); //返回值等于 0System.out.println(s4.compareTo(s1)); //返回值小于 0}
}
在字符串中比大小,要用到String类中的 compareTo 方法
2.2.4 忽略大小写比较
public class Test {public static void main(String[] args) {String s1 = "Hello";String s2 = "heLLo";System.out.println(s1.compareTo(s2)); //返回值小于 0System.out.println(s2.compareTo(s1)); //返回值大于 0//忽略大小写比较System.out.println(s1.compareToIgnoreCase(s2)); //返回值等于 0}
}
在字符串中忽略大小写比大小,要用到String类中的 compareToIgnoreCase 方法
2.3 字符串的查找
String 类 中还有很多方法
public class Test {public static void main(String[] args) {String str = "abcbcyabcdabcfgh";//返回 2 下标上的字符System.out.println(str.charAt(2));//返回 y 第一次出现的位置System.out.println(str.indexOf('y'));//从第 3 位置开始,返回 y 第一次出现的位置System.out.println(str.indexOf('y',3));//返回字符串 "abcd" 第一次出现的位置System.out.println(str.indexOf("abcd"));//从第 3 位置开始,返回 "abcd" 第一次出现的位置System.out.println(str.indexOf("abcd",3));//从后往前找,返回 y 第一次出现的位置System.out.println(str.lastIndexOf('y'));//第 3 位置开始.从后往前找,返回 y 第一次出现的位置System.out.println(str.lastIndexOf('y',3));//从后往前找,返回 "abcd" 第一次出现的位置System.out.println(str.lastIndexOf("abcd"));//第 3 位置开始.从后往前找,返回 "abcd" 第一次出现的位置System.out.println(str.lastIndexOf("abcd",3));}
}
2.4 字符串的转换
public class Test {public static void main(String[] args) {//数字转换字符串String string = String.valueOf(12345);//字母大小写转换String s1 = "aBcdEFg";String s2 = s1.toUpperCase(); //转大写String s3 = s1.toLowerCase(); //转小写//字符串转数组String s4 = "Hello World!";char[] chars = s4.toCharArray();for(char s : chars)System.out.println(s);//数组转字符串char[] chars1 = {'r','t','d','s','d'};String s5 = new String(chars1);//转为格式化String s6 = String.format("%d-%d-%d",2024,11,3);System.out.println(s6);}
}
2.5 字符串的替换
public class Test {public static void main(String[] args) {String string = "abcabababcdefg";//把字符 'a' 全部替换成字符 'h'String s1 = string.replace('a','h');//把第一个字符c串 "a" 替换成字符串 "h"String s2 = string.replaceFirst("a","h");//把字符串 “a” 全部替换成字符串 "h"String s3 = string.replace("a","h");}
}
3. StringBuilder 和 StringBuffer
因为String的特点,它是不可修改的,所以引用StringBuilder 和 StringBuffer这两个可以修改的字符串进一步表示频繁使用的字符串
3.1 三者关系
- String 的内容不可修改,StringBuilder 和 StringBuffer 修饰的内容可以修改
- StringBuilder 和 StringBuffer 的大部分功能是相同的
- StringBuffer采用同步处理,属于线程安全,而StringBuilder 没有采用同步处理,属于线程不安全
4. 小结
以上就是对String类的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持 !