欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

7String类

程序员文章站 2022-07-14 11:10:57
...

String类

创建对象

String s1=new String();
String s2="3";
String s3=new Scanner(System.in).nextLine(); //等同于new Stirng() 不在常量池中操作

概念

  1. 字符串实际上就是一个 char 数组

    private final char value[];
    
  2. 字符串不可变。

  3. String str1 = new String() 是在堆中开辟新的内存空间;

  4. str = “test” 是在堆中的常量池中找"test",若没有则分配新的内存。

  5. str1+str2+str3 字符串拼接,会有5个对象。效率低。

  6. str1+str2 JVM会隐式的改写成StringBuilder调用append()

常用方法

方法名 用处
length() 返回此字符串的长度
charAt(int index) 返回指定索引处的值
concat(String str) 在结尾连接指定字符串
lastIndexOf() 返回指定字符最后一次出现的索引
subString(int a,int b) 返回a-b的一个子字符串,含头不含尾
equals(Object obj) 将此str与指定对象进行比较
startsWith(String prefix) 测试此字符串是否以指定的前缀开头。
endsWith(String suffix) 测试此字符串是否以指定的后缀结尾。
split(String regex) 以regex为分隔符,分割字符串,返回string数组
trim() 返回一个字符串,其值为此字符串,并删除任何前导和尾随空格。
toCharArray() 把字符串数据存入char[]
getBytes() 把字符串数据转换成整数并存入byte[]

StringBuilder 、StringBuffer

用来优化字符串的拼接

特点
  1. 封装了char[] 数组,是可变的字符序列。

  2. 它们的对象可以被多次修改,不产生新的对象。

  3. 常用append()做字符串拼接。

  4. 内部字符数组默认初始容量是16,如果大于16会尝试扩容,新数组大小原来的变成2倍+2,容量如果还不够,直接扩充到需要的容量大小。

  5. stringbuffer1.0定义是线程安全的;stringbuilder1.5定义,去除线程安全以提高速度。

相关标签: javaSE基础 javase

上一篇: 6包装类

下一篇: 3数组