Java的String类详解

95 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第21天,点击查看活动详情 String类介绍
string是C++、java等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。
Java中的String类:使用 双引号括起来 的都是String对象。
Java如何定义String类,两种方式:
方式一

String x = new String("我爱Java");

方式二

String x = 我爱Java";

Java中String类的常用API

Snipaste_2022-12-14_22-18-53.jpg
1.获取字符串的长度length()


String str = "ABCDEFGH";
int leng=str.length();
System.out.println(leng);//输出8

2.判断字符串是否相等equals(String s)


String str1 = "ABCDEFGH";
 String str2="abcdefgh";
Boolean isequal=str2.equals(str1);
 System.out.println(isequal);//输出 false

3.返回下标所在的char的值charAt(int index)


String str1 = "ABCDEFGH";
char D = str1.charAt(3);
System.out.println(D);//输出 D

4.返回String字符子串第一次出现的位置indexOf(String s)


String str1 = "ABCDEFGH";
int b = str1.indexOf("B");
System.out.println(b);//输出 1

5.判断字符串是否为空isEmpty()

String str1 = "ABCDEFGH";
String str2 = "";
boolean isempty1 =    str1.isEmpty();
boolean isempty2 =    str2.isEmpty();
System.out.println(isempty1); //输出 false
System.out.println(isempty2); //输出 true

6.返回从startindex到endindex的字符串substring(int startindex,int endindex)


String str1 = "ABCDEFGH";
String substring = str1.substring(2, 5);
System.out.println( substring); //CDE

7.将字符串转换为char数组tocharArray()


String str1 = "ABCDEFGH";
char[] chars = str1.toCharArray();
for (char aChar : chars) {
    System.out.println(aChar); //遍历输出 A  ,  B  ,C....
}

下面小编出一道面试题 题目描述:
String str1= new String(“ABC”); 和String str2=“ABC” 这两者的区别是什么?
小编解答: String str1= new String(“ABC”) 当执行这一段代码时,不管在方法区的字符串常量池有没有这个“ABC”对象,都会直接创建一个字符串“ABC”,然后将其新创建的字符串地址赋给 str1 String str2=“ABC” 当执行这一段代码时,首先会查看方法区的字符串常量池有没有这个“ABC”对象,如果有的话,就直接将这个字符串常量池中的地址赋值给 str2,如果没有则重新创建 这也解释了为什么 str1!=str2