String类
概述
字符串是由多个字符组成的一串数据(字符序列)的字符串常量,值改变后会重新创建一个新的对象
有两种创建形式:
String s = "abc";
//创建对象时,先在常量池检测是否有相同的值,若没有,就在堆中创建一个字符串对象
//值在常量池中,第二次创建对象时,若常量池已存在值,则直接让引用变量指向第一个
//字符串对象
//特点:JVM会自动根据栈中数据的实际情况来决定是否有必要创建新对象
String s = new String("abc ");
//一概在堆中创建新对象,而不管其字符串值是否相等,是否有必要创建新对象
构造方法
构造方法:
public String()
public String(String string)
public String(byte[] bytes)
public String(char[] value)
public class StringDemo1 {
public static void main(String[] args) throws UnsupportedEncodingException {
/*
构造方法
public String()
public String(String string)
public String(byte[] bytes)
public String(char[] value)
*/
String s=new String();//创建String对象,值是" "
String s1=new String("abc");//使用指定的值value
String s2="abc";
byte []b=s2.getBytes();//字符串转byte数组
System.out.println(Arrays.toString(b));
char []c1={'a','b','c'};
String s3=new String(c1,0,2);//数组名 开始位置 元素个数
byte []b1=s3.getBytes("utf-8");//使指定编码将字符串转换为数组
System.out.println(Arrays.toString(b1));
}
}
判断功能
判断功能
boolean equals(Object obj)
boolean equalsIgnoreCase(String str)
boolean contains(String str)
boolean isEmpty()
boolean startsWith(String prefix)
boolean endsWith(String suffix)
public class StringDemo2 {
/*
判断功能
boolean equals(Object obj)
boolean equalsIgnoreCase(String str)
boolean contains(String str)
boolean isEmpty()
boolean startsWith(String prefix)
boolean endsWith(String suffix)
*/
public static void main(String[] args) {
String s1="abc";
String s2=new String("abc");
String s3=new String("abC");
System.out.println(s1.equals(s2));//判断字符串内容是否相同
System.out.println(s1.equalsIgnoreCase(s3));//判断字符串内容是否相同 不区分大小写
System.out.println(s1.contains("a"));//判断字符串是否包含内容a
System.out.println(s1.contains("ab"));
System.out.println(s1.isEmpty());//判断字符串是否为空
System.out.println("".isEmpty());//""和null不一样
System.out.println(s1.startsWith("ab"));//判断字符串是否以ab开头
System.out.println(s1.endsWith("c"));//判断字符串是否以c结尾
}
}
获取功能
获取功能
int length()
char charAt(int index)
int indexOf(String str)
int indexOf(String str,int fromIndex)
String substring(int start)
String substring(int start,int end)
public class StringDemo3 {
/*
获取功能
int length()
char charAt(int index)
int indexOf(String str)
int indexOf(String str,int fromIndex)
String substring(int start)
String substring(int start,int end)
*/
public static void main(String[] args) {
String s="abcdefghcs";
//0123456789
System.out.println(s.length());//获取字符串长度
System.out.println(s.charAt(3));//获取第三个索引位置的字符
System.out.println(s.indexOf("c"));//返回指定字符在此字符串中第一次出现处的索引
System.out.println(s.indexOf("c",s.indexOf("c")+1));//返回指定字符在此字符串中第二次出现处的索引
System.out.println(s.substring(3));//返回一个新的字符串,它是此字符串的一个子字符串
System.out.println(s.substring(3,7));//返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的3处开始,
// 直到索引7处的字符。因此,该子字符串的长度为7-3。
}
}
转换功能
转换功能
byte[] getBytes()
char[] toCharArray()
static String valueOf(char[] chs)
String toLowerCase()
String toUpperCase()
String concat(String str)
Stirng[] split(分割符)
import java.util.Arrays;
public class StringDemo4 {
/*
转换功能
byte[] getBytes()
char[] toCharArray()
static String valueOf(char[] chs)
String toLowerCase()
String toUpperCase()
String concat(String str)
Stirng[] split(分割符)
*/
public static void main(String[] args) {
String s = "abcdEFG";
byte[] b = s.getBytes();//将 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中
System.out.println(Arrays.toString(b));
char[] c = s.toCharArray();
System.out.println(Arrays.toString(c));//将此字符串转换为一个新的字符数组
System.out.println(s.toLowerCase());//将字符串中的字符全都变为小写
System.out.println(s.toUpperCase());//将字符串中的字符全都变为大写
System.out.println(s.concat("xxxx"));//将指定字符串连接到此字符串的结尾
String s1 = "a:A:da:cs:sds";
String[] s2 = s1.split(":");//根据给定正则表达式的匹配拆分此字符串
System.out.println(Arrays.toString(s2));
/*
替换功能
String replace(char old,char new)
String replace(String old,String new)
replaceAll(String regex, String replacement)
replaceFirst(String regex, String replacement)
*/
String a="abcdefg";
String d="a:xs:w";
System.out.println(a.replace("a", "zz"));
//返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的
System.out.println(a.replace("a", "z"));
System.out.println(d.replaceAll(":", "c"));
//使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串
System.out.println(d.replaceFirst(":", "z"));
//使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串
}
}
替换功能
替换功能
String replace(char old,char new)
String replace(String old,String new)
replaceAll(String regex, String replacement)
replaceFirst(String regex, String replacement)
import java.util.Arrays;
public class StringDemo4 {
public static void main(String[] args) {
/*
替换功能
String replace(char old,char new)
String replace(String old,String new)
replaceAll(String regex, String replacement)
replaceFirst(String regex, String replacement)
*/
String a="abcdefg";
String d="a:xs:w";
System.out.println(a.replace("a", "zz"));
//返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的
System.out.println(a.replace("a", "z"));
System.out.println(d.replaceAll(":", "c"));
//使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串
System.out.println(d.replaceFirst(":", "z"));
//使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串
}
}