String
String:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。
String声明为final的,不可被继承
String实现了Serializable接口:表示字符串是支持序列化的实现了Comparable接口:表示String可以比较大小
String在内部定义了final的char型数组(final char[]),用于存储字符串数据。
String代表一个不可变的字符序列。具有不变性。
/** The value is used for character storage. */ private final char value[]; /** The offset is the first index of the storage that is used. */ private final int offset; /** The count is the number of characters in the String. */ private final int count;
初始化方式:常用的两种:
//通过字面量的方式定义 String s1 = "java"; //通过new + 构造器方式 String s2 = new String("java2");
会开辟两块堆内存空间,不会自动保存在常量池中,可以使用intern()方法手工入池。
String的常用用法详解
1.int length():返回字符串的长度
String s1 ="HelloWorld"; System.out.println(s1.length());//10
2.char chaeAt():返回索引处(index)的字符
String s1 ="HelloWorld"; System.out.println(s1.charAt(5));//W
3.boolean isEmpty():判断是否是空字符串
String s1 ="HelloWorld"; System.out.println(s1.isEmpty());//false
4.String toLowerCase():使用默认语言环境,将String中的所有字符转换为小写
String s1 ="HelloWorld"; String s2 = s1.toLowerCase(); System.out.println(s2);//helloworld
5.String toUpperCase():使用默认语言环境,将String中的所有字符转换为大写(toLowerCase() 小写)
String str = "HELLO" ; System.out.println(str.toLowerCase()); //hello String str = "hello" ; System.out.println(str.toUpperCase()); // HELLO
6.String trim():返回字符串的副本,忽略字符串前和字符串后的空白
String s3 = " he ll o w or l d "; String s4 = s3.trim(); System.out.println("----------" + s4 + "-----------"); //"he ll o w or l d"
7.boolean equals():比较两个字符串的内容是否相同
String s6 = "abc"; String s7 = "cde"; System.out.println(s6.equals(s7));//false
8.String concat():将指定字符串连接到此字符串的结尾。
String s1 = "abc"; System.out.println(s1.concat("def"))//abcdef
9.int compareTo():比较两个字符串的大小
String s6 = "abc"; String s7 = "cde"; int i = s6.compareTo(s7); System.out.println(i);//-2
10.String substring((int beginIndex):返回一个新的字符串,它是此字符串的从 beginIndex开始截取到最后的一个子字符串
String s8 = "你是如此美丽"; String s9 = s8.substring(2); System.out.println(s9);//如此美丽
11.boolean contains(CharSequence s):当且仅当此字符串包含指定的 char 值序列 时,返回 true
String str1 = "helloworld"; String str2 = "wo"; boolean b4 = str1.contains(str2);//true
12.int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引
String str1 = "helloworld"; System.out.println(str1.indexOf("lo"));//3 //若不存在,返回-1
13.int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引
String str1 = "helloworld"; System.out.println(str1.lastIndexOf("o"));//6
14.String replace(char oldChar, char newChar):返回一个新的字符串,它是 通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
15.boolean matches(String regex):告知此字符串是否匹配给定的正则表达式。
16.String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。