Java基础:String类概念、重要方法、构造函数

举报
wljslmz 发表于 2022/12/29 09:59:26 2022/12/29
1.2k+ 0 0
【摘要】 String 类可以处理多个字符(字符串),而 Character 类只能处理单个字符。但是,与 Character 类一样,一旦将字符串分配给对象,它就无法更改。如果要修改字符串,请使用 StringBuffer 类。String类被设计成高效的,比如在不同的对象之间共享相同的字符串,考虑到内存的有效利用,除非分配的字符串发生变化,否则应优先使用String类。 概述生成String对象主...

String 类可以处理多个字符(字符串),而 Character 类只能处理单个字符。但是,与 Character 类一样,一旦将字符串分配给对象,它就无法更改。如果要修改字符串,请使用 StringBuffer 类。

String类被设计成高效的,比如在不同的对象之间共享相同的字符串,考虑到内存的有效利用,除非分配的字符串发生变化,否则应优先使用String类。

概述

生成String对象主要有两种方式:

String str1 = "字符串1";

String str2 = new String("字符串2");

不使用 new 运算符的 upper 方法在内存使用方面比使用 new 运算符的 lower 方法更高效。上层方法在内存区创建编译时指定的字符串,而下层方法在内存区创建编译时指定的字符串,执行new String()时也创建包含指定字符串的实例。这是额外的内存空间,除非使用 String 类提供的便利构造函数,否则不需要使用 new 运算符。

String类的重要方法

让我们看一下 String 类的一些重要方法,其中一些方法被重载以处理带有参数的不同场景。

  1. length():返回字符串对象的长度。
  2. charAt(int index):返回给定索引处的字符值。
  3. toCharArray():此方法从该字符串创建一个字符数组。
  4. getBytes(String charsetName): 用于从该字符串创建一个字节数组。
  5. equals(Object anObject): 用于将此字符串与另一个对象进行比较。
  6. equalsIgnoreCase(String anotherString): 用于不区分大小写地将此字符串与另一个字符串进行比较。
  7. compareTo(String anotherString), compareToIgnoreCase(String str): 按字典顺序将此字符串与另一个字符串进行比较。第一个区分大小写,第二个执行不区分大小写的比较。
  8. startsWith(String prefix): 如果此字符串以给定字符串开头,则返回 true。
  9. endsWith(String suffix): 如果此字符串以给定字符串结尾,则返回 true。
  10. substring(int beginIndex, int endIndex): 返回此字符串的子字符串。
  11. concat(String str): 将给定的字符串连接到该字符串的末尾并返回它。
  12. replace(char oldChar, char newChar):用新字符替换旧字符后返回一个新字符串。
  13. matches(String regex): 检查此字符串是否与给定的正则表达式匹配。
  14. split(String regex):使用正则表达式参数将此字符串拆分为字符串数组。
  15. join(CharSequence delimiter, CharSequence... elements):一种实用方法,用于将多个字符串连接成具有指定分隔符的新字符串。我们可以使用此方法从字符串数组创建 CSV 记录。
  16. toLowerCase(), toUpperCase(): 用于获取此字符串的小写和大写版本。
  17. trim(): 用于从此字符串中删除前导和尾随空格。
  18. strip(), stripLeading(), stripTrailing():从该字符串中去除空格后返回新字符串。strip()如果您对和之间的区别感到困惑trim()– 没有区别。它们都执行相同的任务,但strip()方法更具可读性。它与其他编程语言中的类似方法一致。
  19. isBlank(): 如果字符串为空或仅包含空格,则返回 true。
  20. lines(): 在 Java 11 中引入,从这个字符串返回一个行流。
  21. indent(int n): 在 Java 12 中引入,根据参数值返回一个缩进的字符串。
  22. transform(Function<? super String, ? extends R> f): 在 Java 12 中引入以将函数应用于此字符串。该函数应接受单个字符串参数并返回 R。
  23. format(String format, Object... args): 使用指定的格式和参数返回格式化字符串。
  24. valueOf(Object obj):返回给定对象的字符串表示形式。有重载版本可以处理原始数据类型、数组和对象。
  25. intern():返回字符串池中的字符串。
  26. repeat(int count): 将此字符串连接指定次数后返回一个新字符串。
  27. describeConstable(), resolveConstantDesc(MethodHandles.Lookup lookup):为 Java 12 常量 API 实现。

String 构造函数

构造函数 解释
String( ) 创建一个空对象。
String(byte[ ]) String(byte[ ], int, int) String(byte[ ], int, int, String) String(byte[ ], String) 将从字节数组生成的字符串分配给对象。int 值(如果存在)表示字节数组中的偏移量和长度。一个 String 值(如果存在),它指定将字节转换为字符串时要使用的字符编码方法。
String(char[ ]) String(char[ ], int, int) 将从 char 类型数组生成的字符串分配给对象。int 值(如果存在)表示 char 数组中的偏移量和长度。
String(String) 通过替换另一个字符串类型对象的值来创建一个新的字符串类型对象。
String(StringBuffer) 通过给 StringBuffer 类型对象赋值创建一个新的 String 类型对象。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。