Java String字符串

String在Java中用来存储字符串。内容由final修饰,不可改变,若要修改只能用新的对象来代替。

常见String构造方法

 直接用字符串

String str="test";

这种会在常量池创建字符串,str在栈中存入的地址指向常量池中的具体内容 

public String()

String str=new String();

在堆内存中创建空字符串 

public String(char[] chars)

String str=new String(chars);

传入字符数组,根据其内容创建新字符串 

public String(String original)

String str=new String(original);

接收String对象, 根据其内容创建新字符串

字符串拼接赋值

        String str1 = "abc";
        String str2 = "ab";
        String str3 = str2 + "c";
        String str4 = "a" + "b" + "c";

首先str1和str2的内容是存入常量池中的。

然后像str3和str4这种是先处理等号右边的,但这两个又有所不同。

其中str3右边会创建一个StringBuilder对象,然后通过append()方法拼接内容,最后用toString()方法在堆内存创建String对象赋给str3。

而str4是通过常量优化机制将等号右边的处理成"abc",再赋给str4。

由于str1和str4都是在常量池中地址相同,所以str1==str4的值为true。而str3是再堆中创建的String对象,地址和前两个不同,所以str1==str3值为false。

一些String常用方法

内容比较

由于String不是基本数据类型,所以不用==比较其内容,而是用equals()方法比较。

boolean bool = str1.equals(str2);

还有一个equalsIgnoreCase()方法,不考虑大小写

boolean bool = str1.equalsIgnoreCase(str2);

比较的结果是boolean类型数据,内容一样则返回true,否则返回false

length() 获得长度

由length()方法获得,和数组不同

int leng = str1.length();

toCharArray()

将String字符串转化为char[]字符数组

char[] chars=str1.toCharArray();

charAt()

获取对应索引位置的字符,返回char字符,可用于遍历字符串。String字符串索引从0开始

char c=str1.charAt(2);

substring()

字符串截取,返回String,和Python的字符串截取差不多

String str=str1.substring(1);
String str=str1.substring(0,2);

第一个:截取从索引1开始到最后一个字符,包括最后一个字符

第二个:截取从索引0开始到索引2字符,不包括索引2的字符

replace()

字符串替换,返回String,可用于屏蔽脏话、隐藏号码等

这里用第二个举例,将tmd替换为***

String str=str1.replace("tmd","***");

split()

字符串切割,返回String[]

String[] strings=str1.split(",");

//"姓名,性别"
//["姓名","性别"]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值