目录
含义:String是一个封装char[]数组的对象,字符串不可变
String str = “abc”; 等效于:char[] data = {‘a’, ‘b’, ‘c’};
- public final class String
- implements java.io.Serializable, Comparable<String>, CharSequence
注意:
方式一:
- String str=new String(data,0,3);
- String str=new String("abc");
方式二:String str="abc";
- String a="我";
- String b="蛋糕";
- String name=String.format("%s喜欢%s", a,b);
- System.out.println(name);//字符串可以直接打印
- int hashCode()
- 返回此字符串的哈希码。
-
- boolean equals(Object anObject)
- 将此字符串与指定的对象比较,比较的是重写后的串的具体内容
-
- String toString()
- 返回此对象本身(它已经是一个字符串!)。
-
- int length()
- 返回此字符串的长度。
-
- String toUpperCase()
- 所有字符都转换为大写。
-
- String toLowerCase()
- 所有字符都转换为小写
-
- boolean startsWith(String prefix)
- 测试此字符串是否以指定的元素开头。
-
- boolean endsWith(String suffix)
- 测试此字符串是否以指定的字符串结束。
-
- char charAt(int index)
- 返回指定索引/下标处的 char 值/字符
-
- int indexOf(String str)
- 返回指定字符在此字符串中第一次出现处的索引。
-
- int lastIndexOf(String str)
- 返回指定字符在此字符串中最后一次出现处的索引。
-
- String concat(String str)
- 将指定字符串连接/拼接到此字符串的结尾,注意:不会改变原串
-
- String[] split(String regex)
- 根据给定元素来分隔此字符串。
-
- String trim()
- 返回去除首尾空格的字符串
-
- byte[] getBytes()
- 把字符串存储到一个新的 byte 数组中
-
- String substring(int beginIndex)
- 返回一个新子串,从指定下标处开始,包含指定下标
-
- String substring(int beginIndex, int endIndex)
- 返回一个新子串,从执定下标开始,到结束下标为止,但不包含结束下标
-
- static String valueOf(int i)
- 把int转成String
-
- char[] toCharArray()
- 将字符串转成字符数组
语法:字符串.append(字符串);
返回值:原字符串
- String s = "hello world";
- StringBuffer s1 = new StringBuffer();
- StringBuffer append = s1.append(s);
- System.out.println(s1);//hello world
- System.out.println(s1==append);//true
语法:字符串.delete(索引1,索引2)
作用:删除[索引1,索引2)之间所有的字符
返回值:原字符串
- StringBuilder s1 = new StringBuilder("hello world");
- StringBuilder delete = s1.delete(3, 6);
- System.out.println(delete);
- System.out.println(s1==delete);//true
语法:字符串.insert(索引,字符串)
作用:在指定索引的前面追加字符
返回值:原字符串
- StringBuffer s1 = new StringBuffer("hello");
- StringBuilder s2=new StringBuilder("world");
- StringBuffer s = s1.insert(1, "ab");
- s2.insert(5, "cd");//在末尾处追加字符串,如果索引为6则报错
- System.out.println(s1);//habello
- System.out.println(s1==s);//true
- System.out.println(s2);//worldcd
语法:字符串.replace(索引1,索引2,str字符串)
作用:将字符串内[索引1,索引2)内所有字符由str字符串替换
返回值:原字符串
- StringBuilder s1 = new StringBuilder("hello world");
- StringBuilder s2 = s1.replace(3, 6, "no");
- System.out.println(s2);
- System.out.println(s1==s2);//true
语法:字符串.reverse()
返回值:原字符串
- StringBuffer s1 = new StringBuffer("abc");
- StringBuffer reverse = s1.reverse();
- System.out.println(s1);//cba
- System.out.println(s1==reverse);//true
语法:字符串.charAt(索引)
返回值:对应索引处的字符
- StringBuffer s1 = new StringBuffer("hello world");
- char c = s1.charAt(6);
- System.out.println(c);
语法:字符串.substring(索引1,索引2)
返回值:字符串[索引1,索引2)内字符组成的字符串
- StringBuffer s1 = new StringBuffer("hello world");
- String substring = s1.substring(2, 5);
- System.out.println(substring);
含义:正确字符串的格式,常用来判断用户输入的内容是否符合格式的要求,注意是严格区分大小写的。
注意:java字符串正则严格按照顺序匹配

语法:字符串.Matches(正则)
作用:判断当前字符串是否匹配正则表达式,若符合则返回true,否则返回false
返回值:boolean
- //身份证号的规律:一共是18位,前17位是数子,第18位有可能是数字,也有可能是X
- String regex = "\\d{17}[0-9X]";
- System.out.println("请输入您的身份证号");
- String s = new Scanner(System.in).nextLine();
- boolean matches = s.matches(regex);
- System.out.println(matches);
语法:字符串.replaceAll(正则,子串)
作用:将字符串内符合正则的内容用字串代替
返回值:替换好的字符串
- String regex = "\\d[0-9X]";
- String s = "he1Xo";
- String s1 = s.replaceAll(regex, "ll");
- System.out.println(s1);
语法:字符串.split(正则)
作用:以字符串内符合正则表达式的内容来拆分字符串
返回值:拆分好的字符串数组
- String regex = "\\d[0-9X]";
- String s = "abc23def0Xghi";
- String[] split = s.split(regex);
- System.out.println(Arrays.toString(split));//[abc, def, ghi]