一、字符串特点
1、是常量,内容永不可变,创建之后不可更改
2、可共享使用,节省内存
3、效果上相当于char[]字符数组,底层原理是字节数组byte[]
二、创建字符串的3+1种方式
三种构造方法
1、创建空白字符串,不含任何内容
public String();
String str1=new String();
str1="于松江";
System.out.println("第一个字符串是"+str1);
2、根据字符数组,创建对应字符串
public String (char[] array);
char[] charArray={'1','2','3'};
String str2=new String(charArray);
System.out.println("第二个字符串是"+str2);
3、根据字节数组创建相应字符串
public String (byte[] array);
byte[] byteArray={97,98,99};
String str3=new String(byteArray);
System.out.println("第三个字符串是"+str3);
一种直接创建(不用new)
直接写上双引号就是字符串
String str4="程泽琪";
System.out.println("第四个字符串是"+str4);
三、字符串的常量池
程序当中直接写上双引号的字符串,就在字符串常量池中,new出来的不在。
基本类型 ==:数值的比较
引用类型 ==:地址值的比较
四、字符串的常用方法
内容比较方法:
1、
public boolean equals(Oblect obj);
String str1 = "abc";
String str2 = "abc";
//创建一个字符串型的数组 把字符串传入新数组中
char[] charArray = {'a', 'b', 'c'};
String str4=new String(charArray);
System.out.println(str1.equals(str2));
System.out.println(str4.equals(str1));
System.out.println(str2.equals(str4));
System.out.println(str1.equals(str4));
结果都是true
(1)参数可以是任何对象,都可以用obj接收,内容相同返回true。
(2)equals具有对称性,a.equals(b)与b.equals(a)具有一样的效果
(3)推荐"abc".equals(str)<不推荐str.equals("abc")
若双引号里是空白,表示null,没有地址会发生空指针异常
2、
public boolean equalsIgnoreCase();
忽略大小写
str1.equalsIgnoreCase(str3);
五、字符串的获取方法
1、获取字符出串字符的个数,拿到字符串长度
public int lenght();
String str1="hsuxalksacjdhbjshfvb";
int lenght=str1.length();
System.out.println("字符串的长度是"+lenght);
2、将当前字符串和参数字符串进行拼接,返回出新的字符串
public String concat(String str);
String str2="ab";
String str3="cd";
String str4=str2.concat(str3);
3、获取指定索引位置的单个字符
public char charAt(int index);
char ch=str1.charAt(5);
4、查找小字符串首次出现的位置,若没有返回-1
public int indexOf(String str);
int index=str1.indexOf("a");
六、字符串的截取方法
1、从参数位置到字符串开始
public String subString(int index);
String str1=str.substring(3);
2、
public String subString(int begin,int end);
String str2=str.substring(2,5);
七、与转换相关的方法
1、字符串拆分成字符数组作为返回值
public char[] toCharArray();
注:遍历时用for循环!
String str1="hello";
char[] chars = str1.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
}
2、获得字符串底层字节数组
public byte[] getBytes();
String str2="abc";
byte[] bytes = str2.getBytes();
for (int i = 0; i < bytes.length; i++) {
System.out.println(bytes[i]);
}
3、老字符串替换新字符串
public String replace(charSequence oldString,charSequence newString);
String str3="i love u";
String str4 = str3.replace("u", "于松江");
八、字符串的分割
按字符串规则,将字符串分割成若干部分
public String[] split(String regex)
String str1="aaa,bbb,ccc";
String[] str2 = str1.split(",");
for (int i = 0; i < str2.length; i++) {
System.out.println(str2[i]);
}
split是一个正则表达式
注:英文据点"."进行切分,必须写成"//."
String str3="aaa.bbb.ccc";
String[] str4 = str3.split("\\.");
for (int i = 0; i < str4.length; i++) {
System.out.println(str4[i]);
}
网友评论