文
章
目
录
章
目
录
在Java中,字符串(String)表示一系列不可变的字符,一旦创建就不能被修改。字符串属于java.lang.String
类。在本页面中,我们将学习使用字符串字面值和构造函数创建字符串,字符串方法以及与字符串转换和格式化相关的其他示例。
1. 创建新字符串
有两种方法可以在Java中创建字符串。
1.1. 字符串字面值
字符串字面值是在Java中创建字符串最简单且推荐的方式。通过这种方式,只需将双引号中的字符赋值给java.lang.String
类型的变量。
由于性能原因,字符串字面值始终在字符串常量池中创建。
String str = "www.panziye.com"; // 使用字符串字面值创建字符串
1.2. 字符串对象
有时,我们可能希望为内存中的每个不同字符串创建单独的实例。我们可以使用new
关键字为每个字符串值创建一个字符串对象。使用new
关键字创建的字符串对象存储在堆内存中。
在以下示例中,将会在堆内存中创建3个具有相同值的字符串的单独实例。
String blogName1 = new String("www.panziye.com");
String blogName2 = new String("www.panziye.com");
String blogName3 = new String("www.panziye.com");
2. 字符串API方法
- charAt(int index) – 返回指定索引处的字符。指定的索引值应该在 ‘0’ 到 ‘length() -1’(两者都包括在内)之间。如果索引无效或超出范围,它会抛出
IndexOutOfBoundsException
异常。 - equals(Object obj) – 将字符串与指定字符串以区分大小写的方式进行比较,如果两者匹配,则返回
true
,否则返回false
。 - equalsIgnoreCase(String string) – 以不区分大小写的方式进行比较,与
equals
方法类似。 - compareTo(String string) – 根据字符串中每个字符的 Unicode 值来按字典顺序比较两个字符串。如果参数字符串等于此字符串,则返回值为 0;如果此字符串按字典顺序小于参数字符串,则返回小于 0 的值;如果此字符串按字典顺序大于参数字符串,则返回大于 0 的值。
- compareToIgnoreCase(String string) – 与
compareTo
方法相同,但在比较过程中忽略大小写。 - startsWith(String prefix, int offset) – 检查字符串是否以指定前缀开头,从指定偏移索引开始。
- startsWith(String prefix) – 检查字符串是否以指定前缀开头,偏移索引值为 0。
- endsWith(String suffix) – 检查字符串是否以指定后缀结尾。
- hashCode() – 返回字符串的哈希码。
- indexOf(int ch) – 返回字符串中指定字符参数的第一次出现的索引。
- indexOf(int ch, int fromIndex) –
indexOf(char ch)
方法的重载版本,从指定的fromIndex
开始搜索字符串。 - indexOf(String str) – 返回指定子字符串
'str'
的第一次出现的索引。 - indexOf(String str, int fromIndex) –
indexOf(String str)
方法的重载版本,从指定的fromIndex
开始搜索字符串。 - lastIndexOf(int ch) – 返回字符串中字符
'ch'
的最后一次出现的索引。 - lastIndexOf(int ch, int fromIndex) –
lastIndexOf(int ch)
方法的重载版本,从fromIndex
开始向后搜索。 - lastIndexOf(String str) – 返回字符串中字符串
'str'
的最后一次出现的索引,类似于lastIndexOf(int ch)
。 - lastIndexOf(String str, int fromIndex) –
lastIndexOf(String str)
方法的重载版本,从fromIndex
开始向后搜索。 - substring(int beginIndex) – 返回字符串的子串,从指定索引开始。
- substring(int beginIndex, int endIndex) – 返回子串,从
beginIndex
处的字符开始,以endIndex
处的字符结束。 - concat(String str) – 将指定的字符串参数连接到字符串的末尾。
- replace(char oldChar, char newChar) – 将所有旧字符的出现替换为新字符,返回更新后的字符串。
- replace(String target, String replacement) – 将所有目标子字符串替换为指定的替代字符串,返回更新后的字符串。
- replaceFirst(String regex, String replacement) – 使用指定的正则表达式替换第一个与之匹配的子字符串,返回更新后的字符串。
- replaceAll(String regex, String replacement) – 使用指定的正则表达式替换所有与之匹配的子字符串,返回更新后的字符串。
- split(String regex, int limit) – 拆分字符串并返回与给定正则表达式匹配的子字符串数组。
'limit'
是数组中的最大元素数。 - split(String regex) –
split(String regex, int limit)
方法的重载版本,没有阈值限制。 - contains(CharSequence s) – 检查字符串是否包含指定字符序列。如果包含,则返回
true
,否则返回false
。 - toUpperCase(Locale locale) – 使用指定地区定义的规则将字符串转换为大写字符串。
- toUpperCase() –
toUpperCase(Locale locale)
方法的重载版本,使用默认地区。 - toLowerCase(Locale locale) – 使用指定地区定义的规则将字符串转换为小写字符串。
- toLowerCase() –
toLowerCase(Locale locale)
方法的重载版本,使用默认地区。 - intern() – 在内存池中搜索指定的字符串,并返回其引用。否则,该方法会在字符串池中创建字符串字面量并返回引用。
isEmpty()
– 如果给定字符串长度为 0,则返回true
,否则返回false
。static String join()
– 使用指定的分隔符连接给定的字符串,并返回连接后的 Java 字符串。static String format()
– 返回格式化后的字符串。trim()
– 从 Java 字符串中删除前导和尾随空格。toCharArray()
– 将字符串转换为字符数组。static String copyValueOf(char[] data)
– 返回包含指定字符数组的字符的字符串。byte[] getBytes(String charsetName)
– 使用指定的字符集编码将字符串转换为字节序列。byte[] getBytes()
–getBytes(String charsetName)
方法的重载版本,使用默认字符集编码。length()
– 返回字符串的长度。matches(String regex)
– 验证字符串是否与指定的正则表达式匹配。codePointAt(int index)
– 类似于charAt()
方法,返回指定索引处的 Unicode 代码点值,而不是字符本身。static String copyValueOf(char[] data, int offset, int count)
–copyValueOf(char[] data)
方法的重载版本,包含两个额外的参数,子数组的起始偏移和子数组的长度。它基于额外的参数从数组中选择字符,然后创建字符串。void getChars(int srcBegin, int srcEnd, char[] dest, int destBegin)
– 将 src 数组的字符复制到 dest 数组。只复制指定范围(从 srcBegin 到 srcEnd)到 dest 子数组(从 destBegin 开始)。static String valueOf()
– 返回传递的参数(如 int、long、float、double、char 和字符数组)的字符串表示形式。boolean contentEquals(StringBuffer sb)
– 将字符串与指定的字符串缓冲区进行比较。boolean regionMatches()
– 比较输入字符串的子字符串与指定字符串的子字符串。boolean regionMatches()
–regionMatches()
方法的另一种变体,具有额外的布尔参数,用于指定是否进行区分大小写的比较。
3. 转换
- 将 Java 字符串转换为 int
- 在 Java 中将 int 转换为字符串
- 将字符串转换为 Long
- 在 Java 中将 Long 转换为字符串
- 将字符串转换为日期
- 将日期转换为字符串
- 将字符串转换为 String[] 示例
- Java 8 – 连接字符串数组 – 将数组转换为字符串
- 将字符串转换为 InputStream 示例
- 将 InputStream 转换为字符串示例
- Java 拆分 CSV 字符串 – 将字符串转换为列表示例
- 将 CSV 连接为字符串
- 取消转义 HTML 为字符串示例
- 转义 HTML – 将字符串编码为 HTML 示例
- 将字节数组转换为字符串
- 转换堆栈跟踪为字符串
- 将浮点数转换为字符串 – 格式化为 N 个小数点
4. 有用的代码示例
- 在 Java 中使用递归反转字符串
- 删除单词之间的额外空格
- 仅删除字符串的前导空格
- 仅删除字符串的尾随空格
- 如何在 Java 中反转字符串
- 在 Java 中反转字符串中的单词
- 如何查找字符串中的重复单词
- 如何查找字符串中的重复字符
- Java 按字母表顺序对字符串字符进行排序
- 将字符串转换为标题案例
- 拆分字符串的4种方法
- 左对齐、右对齐或居中对齐字符串
- 读取文件到字符串
- Java 8 StringJoiner 示例
- 使用空格或零填充字符串的左侧
- 使用空格或零填充字符串的右侧
- 获取字符串的前4个字符
- 获取字符串的最后4个字符
- 掩盖除了最后4个字符外字符串
- 格式化字符串为 (123) 456-7890 模式
- 从字符串中删除最后一个字符
5. 常见问题
教程 Java基础教程
文章目录前言 第1章 Java语言基础 第2章 流程控制语句 第3章 面向对象编程 第4章 Java 字符串 […]