开启掘金成长之旅!这是我参与「掘金日新计划 · 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
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