java学习:String

目录

关于JDK内置的一个类:java.lang.String

StringBuffer

StringBuilder


关于JDK内置的一个类:java.lang.String

1.String表示字符串类型,属于引用数据类型

2.java中任何使用双引号括起来的都是String对象

3.java中规定,双引号括起来的字符串,是不可变的,也就是说"abc"自出生到最终死亡不可变

4.在JDK当中双引号括起来的字符串,例如:"abc","def"都是直接存储在方法区的字符串常量池当中

5.为什么SUN公司把字符串存储在一个"字符串常量池"当中

因为字符串在实际的开发中使用太频繁。为了执行效率,所以把字符串放到了方法区的字符串常量池当中

6.String构造方法

1.String s1 = new String(" ");

2.String s2 = " ";

3.String s3 = new String(char数组);

4.String s4 = new String(char数组,起始下标,长度);

5.String s5 = new String(byte数组);

6.String s6 = new String(byte数组,起始下标,长度);

7.String常用方法

1.public char charAt(int index)

        返回指定索引处的 char 值。索引范围为从 0 到 length() - 1。序列的第一个 char 值位于索引 0 处,第二个位于索引 1 处,依此类推,这类似于数组索引

2.public int compareTo(String anotherString)

        按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只在方法 equals(Object) 返回 true 时才返回 0

3.public boolean contains(CharSequence s)

        当且仅当此字符串包含指定的 char 值序列时,返回 true。

4.public boolean endsWith(String suffix)

        测试此字符串是否以指定的后缀结束。

5.public boolean equals(Object anObject)

        将此字符串与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true

6.public boolean equalsIgnoreCase(String anotherString)

        将此 String 与另一个 String 比较,不考虑大小写。如果两个字符串的长度相同,并且其中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的。

7.public byte[] getBytes(String charsetName)

        使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

8.public int indexOf(String str)

        返回指定子字符串在此字符串中第一次出现处的索引。

9.public int length()

        返回此字符串的长度。长度等于字符串中 Unicode 代码单元的数量。

10.public boolean isEmpty()

        当且仅当 length() 为 0 时返回 true。

11.public int lastIndexOf(String str)

返回指定子字符串在此字符串中最右边出现处的索引。将最右边的空字符串 "" 视为出现在索引值 this.length() 处。

12.public String replace(char oldChar, char newChar)

        返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。

13.public String[] split(String regex)

        根据给定正则表达式的匹配拆分此字符串。

14.public boolean startsWith(String prefix)

        测试此字符串是否以指定的前缀开始。

15.public String substring(int beginIndex)

        返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。

16.public String substring(int beginIndex, int endIndex)

        返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex

17.public char[] toCharArray()

        将此字符串转换为一个新的字符数组。

18.public String toLowerCase()

        使用默认语言环境的规则将此 String 中的所有字符都转换为小写。

19.public String toUpperCase()

        使用默认语言环境的规则将此 String 中的所有字符都转换为大写。

20.public String trim()

        返回字符串的副本,忽略前导空白和尾部空白。

21.public static String valueOf()

        把括号里的数据(boolean,char,char[],double,float,int,long,Object )转换成字符串


StringBuffer

1.StringBuffer底层是一个byte数组

2.往StringBuffer中放字符串,实际上是放到byte数组中了

3.StringBuffer的初始化容量是16

4.构造方法:StringBuffer()

构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。

5.append()方法:实现字符串拼接

6.拼接字符串最好使用append()方法

7.append()方法底层追加的时候如果满了,会自动扩容

8.在创建StringBuffer的时候尽可能给定一个大一点的初始化容量,减少底层的扩容次数


StringBuilder

1.StringBuilder和StringBuffer差不多,不过有一点区别

1.和StringBuffer的区别

StringBuffer中的方法都有synchronized关键词修饰,表示StringBuffer在多线程环境下运行时安全的,StringBuilder中的synchronized关键词修饰,表示StringBuilder在多线程环境下运行是不安全的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值