String类
概述
java.lang.String 类代表字符串。
Java程序中所有的字符串文字(例如 “abc” )都可以被看作是实现此类的实例。
类 String 中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及创建具有翻译为大写或小写的所有字符的字符串的副本。
特点
- 字符串内容不变(常量):字符串的值在创建后不能被更改。
- 因为String对象是不可变的,所以它们可以被共享。(防止资源浪费)
- “abc” 等效于 char[] data={ ‘a’ , ‘b’ , ‘c’ }
## 使用步骤
查看类
java.lang.String :此类不需要导入。
查看构造方法
public String() :初始化新创建的 String对象,以使其表示空字符序列。
public String(char[] value) :通过当前参数中的字符数组来构造新的String。
public String(byte[] bytes) :通过使用平台的默认字符集解码当前参数中的字节数组来构造新的 String。
代码实现:
public class stinglei {
public static void main(String[] args) {
//空参构造
String str1=new String();
System.out.println("第一个字符数组为:"+str1);
//根据字符数组构造
char[] st2={'L','X'};
String str2=new String (st2);
System.out.println("第二个字符数组为:"+str2);
//根据字节数组构造
byte[] str3={97,98,99};
String str4=new String (str3);
System.out.println("第三个字符数组为:"+str4);
}
}
public class demo2string {
public static void main(String[] args) {
String str1 = "abc";
String str2 = "abc";
char[] charArray = {'a', 'b', 'c'};
String str3 = new String(charArray);
System.out.println(str1==str2);
System.out.println(str2==str3);
System.out.println(str1==str3);
}
}
运行结果
字符串常量池:程序当中,直接写上的双引号字符串都在字符串常量池中
对于基本类型来说== 是进行数值的比较
对于引用类型来说 ==是进行地址值的比较
上面代码中第一个字符串和第二个字符串结果为true说明地址值一样
字符串常量池基本原理
常用方法
字符串比较的方法
是进行对象的地址值比较,如果要对字符串内容比较,可以用两个方法
public boolean equals(Object obj):参数可以是任何对象,只有参数是一个字符串且内容一致才会返回true 否则返回false
equal使用注意事项:
不区分大小写的比较
public class stringcompare {
public static void main(String[] args) {
String str1 = "abc";
String str2 = "abc";
char[] charArray = {'a', 'b', 'c'};
String str3 = new String(charArray);
System.out.println(str1.equals(str2));
System.out.println(str2.equals(str3));
System.out.println(str3.equals("abc"));
}
}
区分大小写的比较
public class stringcompare {
public static void main(String[] args) {
String str1 = "abc";
String str2 = "Abc";
System.out.println(str1.equals(str2));
System.out.println(str1.equalsIgnoreCase(str2));
}
}
获取功能的方法
String 当中与获取相关的常用方法有:
public int length():获取字符串当中的字符个数,拿到字符串长度
public String concat(String str):将当前字符串和参数字符串拼接成为返回值新的字符串
public char charAt(int index):获取指定索引位置的单个字符
public int indexOf(String str):查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1
public class stringhuoqu {
public static void main(String[] args) {
//获取字符串长度
int length="jahsfjihasjgh".length();
System.out.println(length);
//拼接字符串
String str1="Hello";
String str2="World";
String str3=str1.concat(str2);
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
//获取指定索引位置的单个字符
char ch="asfdjkaf".charAt(4);
System.out.println("在四号的索引位置是:"+ch);
//查找参数字符串中在本来字符串中第一次出现的位置,若没有返回-1
String ori="sjdfhuiahsfiajd";
int num=ori.indexOf("i");
System.out.println("第一次索引值:"+num);
//若没有呢?
int num2=ori.indexOf("xunxun");
System.out.println("第一次索引值:"+num2);
}
}