String字符串


一、String

1.基础概念

String内容创建后不可变。

2.常用方法

  1. 直接赋值创建字符串。
    (系统会检查该字符串在传池中是否存在,存在:复用,不存在:创建新的)
  2. 用new方式来创建字符串的方法:空参构造,传递一个字符串,传递一个字符数组,传递一个字节数组(网络传输数据一般都是字节信息)。
    (new方式创建的不会复用,不论是否存在,都开创新的空间)
  3. String substring(int beginIndex,int endIndex) 截取索引从beginIndex到endIndex的字符串。
  • 注意点:包头不包尾,只有返回值才是截取的小串,对原字符串无影响
  1. String substring(int beginIndex) 截取到末尾
  2. String replace(旧值,新值) 替换
  • 注意点:只有返回值才是替换后的,对原字符串无影响
  1. boolean equals(要比较的字符串) 完全一样结果才是true,否则为false
    boolean equalsIgnoreCase(要比较的字符串) 忽略大小写比较
  2. public char[] toCharArray() 将此字符串转换为一个新的字符数组。
  3. Integer.parseInt(String)就是将String字符类型数据转换为Integer整型数据。

二、 StringBuilder

1.基础概念

StringBuilder可以看作一个容器,其中的内容是可以变化的

  • 常用于字符串的拼接与反转。

2.常用方法

方法名说明
public StringBuilder append(任意类型)添加数据,并返回对象本身
public StringBuilder reveres()反转容器中的内容
public StringBuilder toString()把StringBuilder转化为String
public StringBuilder length()返回StringBuilder 长度(已存了多少)
public StringBuilder capacity()返回StringBuilder 容量(最多存多少)

代码如下(示例):

StringBuilder sb= new StringBuilder();
//StringBuilder 是java已经写好的类,	其打印的值不是地址值而是属性值。
	sb.append(123456);
	sb.reverse();  //容器里的内容直接反转,变为654321
	String str = sb.toString();

三.StringJoiner

1.基础概念

StringJoiner可以看作一个容器,其中的内容是可以变化的,JDK8才出现。

  • 可以更高效的拼接。

2.常用方法

方法名说明
public StringJoiner (“间隔符号”)创建一个 StringJoiner 对象,指定拼接时的间隔符号
public StringBuilder (“间隔符号”,“开始符号”,“结束符号”)指定拼接时的间隔符号,开始符号,结束符号
public StringBuilder toString()把StringJoiner转化为String

0.o

链式编程

当我们在调用一个方法时,不需要用变量接收他的结果,可以继续调用其他的结果。

StringBuilder sb= new StringBuilder();
	sb.append(123);
	sb.append(456);
	sb.append(123).append(456);  //链式编程 ,两者结果一样

“==”号

比较直接赋值的字符串,比较的是属性值。
比较引用类型的字符串,比较的是地址值。

字符串拼接底层原理

  • 如果没有变量参与,都是字符串直接相加,编译之后就是拼接后的结果,会复用串池中的字符串
  • 如果有变量参与,每一行拼接的代码,都会在内存中创建新的字符串,浪费内存。

StringBuilder源码分析

  • 默认创建一个长度为16的字节数组
  • 添加的内容长度小于16,直接存
  • 添加的内容长度大于16会扩容(原来的容量*2+2)
  • 如果扩容之后还不够,则以实际长度为准

char(数字) 转换 int

  • ‘0’-‘9’ ASCII 为 48-57,且顺序一致,因而char数字之间的差值等于数字之间的差值 。
char ch1 = '8';
int a = ch1 - '0';
System.out.println(a);
 
//输出
// 8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值