String类
不需要导包
-
在Java中只要使用双引号引用起来的任何数据它们都是String的一个对象
String s = "abc";
String()
初始化一个新创建的String对象,使其表示一个空字符序列。
String(String original)
初始化一个新创建的String对象,使其表示一个与参数列表相同的字符序列:换句话说,心创建的字符串是该参数字符串的副本
string(char[] value)
分配一个新的String,使其表示字符数组参数中当前包含的字符序列
String(char[] value,int offset,int count)
分配一个新的String,它包含取自字符串数组参数一个字数组的字符。
String(byte[] bytes)
通过使用平台的默认字符集解码指定的byte 数组,构造一个新的String
String(byte[] bytes ,int offset,int length)
通过使用平台的默认字符集解码指定的byte子数组,构造一个新的String
案例
public class StringConstructor { public static void main(String[] args) { // 1. 创建出一个空字符串序列 String() String s = new String(); // String s = ""; System.out.println(s + "---"); // 2. String(字符序列) String s1 = new String("hello");// String s = "hello" System.out.println(s1);// hello // 3. String(char[] ch) : 将参数char类型数组中的每一个字符, 拼接成一个字符串结果 char[] ch = { 'A','a','1','?','家'}; String s2 = new String(ch); System.out.println(s2);// Aa1?家 // 4. String(char[] ch, int beginIndex, int count): 将字符数组的一部分,转换成字符串 // beginIndex 从指定索引位置开始 // count 需要转换的字符个数 String s3 = new String(ch,2,2); System.out.println(s3);// 1? // 5. String(byte[] b) : 将字节数组b, 参考编码表, 转换成字符, 将字符拼接成字符串 byte[] b = { 65,66,67,68}; String s4 = new String(b); System.out.println(s4);// ABCD // 6. String(byte[] b, int beginIndex,int count): 将字节数组的一部分,转换成字符串 String s5 = new String(b,1,2); System.out.println(s5);// BC }
String类中的获取功能
lenght():
lenght():获取到一个字符串中的字符个数(字符串的长度) , 返回值类型int
charAt(int index):
charAt(int index): 将字符串中指定的index索引位置上对应的字符获取到,返回值类型char
subString(int beginIndex):
subString(int beginIndex): 截取出字符串的一部分,从beginIndex索引开始, 到最后的全部字符序列取出来, 返回值结果,新的字符串String
subString(int beginIndex, int endIndex) :
subString(int beginIndex, int endIndex) : 从beginIndex到endIndex-1之间的字符序列截取成一个新的字符串, 返回值结果String
注意 : JDK的方法中, 如果是对于两个索引位置进行操作, 通常包括开始索引, 不包括结束索引
indexOf(String str) :
indexOf(String str) : 获取参数字符串str在方法调用字符串中第一次出现的索引位置
返回值类型int, 如果没有找到参数str存在位置, 返回-1
indexOf(String str, int formIndex):
indexOf(String str, int formIndex):返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索, 返回值类型int, 如果没有找到参数str存在位置, 返回-1
lastIndexOf(String str) :
lastIndexOf(String str) : 获取参数字符串str在方法调用字符串中最后一次出现的索引位置
返回值类型int, 如果没有找到参数str存在位置, 返回-1
代码
public class StringGetMethod {
public static void main(String[] args) {
// 1. 获取字符串长度 length()
String s = "hello ";
System.out.println(s.length());// 7
// 2. charAt(int index): 将字符串中指定的index索引位置上对对应的字符获取到
// 返回值类型char
// 因为字符串底层存储就是一个字符数组, 字符数组的索引就对应了字符串中索引位置
char ch = s.charAt(4);
System.out.println(ch);// 'o'
System.out.println(s.charAt(5) + "---");// ' '
// 扩展 : 利用字符串有索引, 范围0---length()-1, 使用charAt方法,将每一个索引位置上
// 的字符获取到, 形成了字符串的遍历
for(int index = 0; index < s.length(); index++){
char c = s.charAt(index);
System.out.println(c);
}
// 3. subString(int beginIndex) : 截取出字符串的一部分,从beginIndex索引开始, 到最后
// 的全部字字符串取出来, 返回值结果,新的字符串
String s1 = "我在家?hello";
String s1Sub = s1.substring(4);
System.out.println(s1Sub);// hello
// 4. subString(int beginIndex, int endIndex) : 从beginIndex到endIndex-1之间的字符序列截取
// 成一个新的字符串, 返回值结果String
// 注意 : JDK的方法中, 如果是对于两个索引位置进行操作, 通常包括开始索引, 不包括结束索引
System.out.println(s1.substring(1,5));// 在家?h
// 5. indexOf(String str) : 获取参数字符串str在方法调用字符串中第一次出现的索引位置
// 返回值类型int, 如果没有找到参数str存在位置, 返回-1
int index1 = s1.indexOf("he");
System.out.println(index1);// 4
int index2 = s1.indexOf("le");
System.out.println(index2);// -1
// 6. indexOf(String str, int formIndex):
// 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索
int index3 = s1.indexOf("l",7);
System.out.println(index3);// 7
System.out.println("-----------------");
// 7. lastIndexOf(String str) : 获取参数字符串str在方法调用字符串中最后一次出现的索引位置
// 返回值类型int, 如果没有找到参数str存在位置, 返回-1
System.out.println(s1.lastIndexOf("l"));// 7
System.out.println(s1.lastIndexOf("哈哈"));// -1
}
转换功能
-
byte[] getBytes():将当前字符串,转成字节数组
-
char[] toCharArray():将当前的字符串,转成字符数组
-
toUpperCase():将当前的字符串,转成全大写形式
-
toLowerCase():将当前的字符串,转成全小写形式
-
static valueOf家族:可以将任意数据类型的数据,转换成字符串
其他功能
1、replace(String oldStr, String newStr):将调用者中的老串替换成新串,返回值为替换后的新字 符串
2、split(String regex): 将字符串按照参数字符串regex规则进行切割, 结果是一个String[]
3、trim():去掉字符串左右两边的空格、制表符