重点是练方法的使用,不用去深究方法的实现。
String 类又称作不可变字符序列。
String 位于 java.lang 包中,Java 程序默认导入 java.lang 包下的所有类。
Java 字符串是 Unicode 字符序列,例如:"Java" 即是 4 个 Unicode 字符 ‘J’、‘a’、‘v’、‘a’ 组成的。
Java 没有内置的字符串类型,而是在标准 Java 类库中提供了一个预定义的类 String,每个用双引号括起来的字符串都是 String 类的一个实例。
(1)String 类的简单使用
String e = "";//空字符串 String greeting = "helloworld!";
(2)字符串连接
String s1 = "Hello!"; String s2 = "World!"; String s = s1 + "," + s2;
Java 允许使用符号 "+",把两个字符串连接起来。
在 "+" 运算符两侧的操作数中,只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串,然后再进行连接。
用双引号包裹起来的字符串, 比如 "abcdefg",都是在方法区的常量值位置存放。
符号 “==” :用于比较是否是同一个对象,如果不是,则值为 false
equals() 方法:比较两个字符串对象包含的字符是否一样,用 equals() 方法
package cn.jungle.test.String; // 测试字符串相等判断 public class Test01 { public static void main(String[] args) { String str1 = new String("abcdefg"); String str2 = "abcdefg"; // == 符号用于比较两个对象是否相等,下方的 str1 和 str2 内存地址不相等,所以 false System.out.println(str1 == str2); // false System.out.println(str1); // abcdefg System.out.println(str2); // abcdefg // 涉及字符串比较的时候,都用 equals 方法:比较两个字符串对象包含的字符是否一样 System.out.println(str1.equals(str2)); // true } }
全局字符串常量池中存放的内容是在类加载完成后存到 String Pool 中的,在每个 VM 中只有一份,存放的是字符串常量的引用值(在堆中生成字符串对象实例)。
class 常量池在编译时每个 class 都会有,在编译阶段,存放的是常量(文本字符串、final 常量等)和符号引用。
运行时常量池是在类加载完成之后,将每个 class 常量池中的符号引用值转存到运行时常量池中,也就是说,每个 class 都有一个运行时常量池,类在解析之后,将符号引用替换成直接引用,与全局常量池中的引用值保持一致。
返回值类型为 char
返回字符串中第 index 个字符 。
返回类型为 int
返回字符串的长度。
返回值类型为 boolean
如果字符串与 other 相等,则返回 true,否则返回 false。
返回值类型为 boolean
如果字符串与 other 相等(忽略大小写),则返回 true;否则返回 false。
返回值类型为 int
返回从头开始查找第一个子字符串 str 在字符串中的索引位置。
如果未找到子字符串 str,则返回 -1
返回值类型为 int
返回从末尾开始查找第一个子字符串 str 在字符串中的索引位置。
如果未找到子字符串 str,则返回 -1
返回一个新字符串,它通过用 newChar 替换此字符串中出现的所有 odlChar 而生成。
可以替换一个字符,也可以替换一堆字符。
返回值类型为 boolean
如果字符串以 prefix 开头,则返回 true。
返回值类型为 boolean
如果字符串以 prefix 结尾,则返回 true。
返回值类型为 String
返回一个新字符串,该串包含从原始字符串 beginIndex 索引位置到串尾。
返回值类型为 String
返回一个新字符串,该串包含从原始字符串 beginIndex 索引位置到串尾或者到 endIndex-1 索引位置的所有字符串。
返回值类型为 String
返回一个新字符串,该串将原始字符串中所有的大写字母改为小写字母。
返回值类型为 String
返回一个新字符串,该串将原始字符串中的所有小写字母改成大写字母。
返回值类型为 String
返回一个新字符串,该串删除了原始字符串头部和尾部的空格。
package cn.jungle.test.String; // 测试 String 类的常用方法 public class Test02 { public static void main(String[] args) { String str1 = "阿jun修炼手册"; String str2 = "阿jun"; String str3 = "阿jUN"; // 用于与 str2 比较 String str4 = "阿jun没对象!"; // charAt(int index) 方法:找到并输出对应索引的字符,索引从 0 开始 System.out.println(str1.charAt(0)); // 阿 System.out.println(str1.charAt(6)); // 手 // length() 方法:输出字符串的长度 System.out.println(str1.length()); // 8 // 取字符串的最后一个字符 System.out.println(str1.charAt(str1.length()-1)); // 册 // equals(String other) :比较两个字符串对象的字符串内容是否相等 System.out.println(str1.equals(str2)); // false // equalsgnoreCase(String other):比较两个字符串对象的字符串是否相等,忽略大小写 System.out.println(str2.equalsIgnoreCase(str3)); // true // indexOf(String str):返回从头开始查找第一个子字符串 str 在字符串中的索引位置。如果未找到子字符串 str,则返回 -1 System.out.println(str1.indexOf("u")); // 2 System.out.println(str1.indexOf("UN")); // -1 System.out.println(str1.indexOf("jun")); // 1 // lastIndexOf():返回从末尾开始查找第一个子字符串 str 在字符串中的索引位置。如果未找到子字符串 str,则返回 -1 System.out.println(str1.lastIndexOf("u")); // 2 System.out.println(str1.lastIndexOf("手")); // 6 System.out.println(str1.lastIndexOf("U")); // -1 // replace(char oldChar,char newChar):返回一个新字符串,它通过用 newChar 替换此字符串中出现的所有 odlChar 而生成。可以替换一个字符,也可以替换一堆字符。 System.out.println(str4.replace("没对象!","修炼手册")); // 阿jun修炼手册 ,其中可以替换一个字符,也可以替换一堆字符。 // 可以替换一个字符,也可以替换一堆字符。 System.out.println(str4.replace("!",",他应该快有对象了吧!,现在是2021年11月24日22:21")); // startsWith(String prefix):如果字符串以 prefix 开头,则返回 true System.out.println(str1.startsWith("阿jun")); // true System.out.println(str1.startsWith("jun")); // false // endsWith(String prefix):如果字符串以 prefix 结尾,则返回 true System.out.println(str1.endsWith("手册")); // true System.out.println(str1.endsWith("有手就行!")); // false System.out.println("有手就行!".endsWith("行不行")); // false ,也可以直接使用字符串去调用 String 类方法 // substring(int beginIndex):返回一个新字符串,该串包含从原始字符串 beginIndex 索引位置到串尾。 System.out.println(str1.substring(4)); // 修炼手册 System.out.println(str1.substring(0)); // 阿jun修炼手册 // substring(int beginIndex,int endIndex):返回一个新字符串,该串包含从原始字符串 beginIndex 索引位置到串尾或者 endIndex-1 索引位置的所有字符串。 System.out.println(str1.substring(0,4));// 阿jun System.out.println(str1.substring(4,str1.length()));// 修炼手册 // toLowerCase():返回一个新字符串,该串将原始字符串中所有的大写字母改为小写字母。 System.out.println("阿JUN".toLowerCase()); // 阿jun // toUpperCase():返回一个新字符串,该串将原始字符串中的所有小写字母改成大写字母。 System.out.println("阿jun".toUpperCase()); // 阿JUN // trim():返回一个新字符串,该串删除了原始字符串头部和尾部的空格。 String str5 = " 阿 jun 修炼手册 "; System.out.println(str5.trim()); // 阿 jun 修炼手册 // 去除所有空格,trim() 方法和 replace() 方法搭配着来 System.out.println(str5.trim().replace(" ","")); // 阿jun修炼手册 } }