Java字符串教程

培训教学 潘老师 9个月前 (09-01) 219 ℃ (0) 扫码查看

在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. 转换

4. 有用的代码示例

5. 常见问题

教程 Java基础教程

文章目录 前言  第1章 Java语言基础 第2章 流程控制语句 第3章 面向对象编程 第4章 Java 字符 […]


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/teach/8540.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】