浅谈Java字符串

本文深入讲解Java中的字符串处理,包括String类的使用、子串提取、字符串拼接、不可变字符串概念、字符串比较方法以及空串与Null串的区别。同时介绍了如何使用StringBuilder类高效构建字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java内没有内置的字符串类型,而是在标准Java类库中提供了一个预定义类:String类。

子串
String类中提供了一个方法substring,可以从一个较大的字符串中提取书一个较小的子串。

		String str = "Hello world!";
		String str1 = str.substring(0,3);
		System.out.println(str1);

上面的代码输出的 str1=“Hel”
substring方法的参数截取了从第一个索引位置(包括第一个字符)到第二个索引位置(不包括第二个字符)之间的字符。

拼接

  • Java中可以使用+号连接两个字符串,如下面所示:
		String str1 = "Hello";
		String str2 = " world";
		String str = str1+str2;
		System.out.println(str);

最终输出的str = “Hello world”。

  • 当一个字符串与非字符串的值进行连接的时候,后者会被转换成为字符串。任何一个Java对象都可以转化成为字符串。下面的这种形式就是我们常用的:
		int number = 3;
		System.out.println("The number is "+number);
  • 如果需要将多个字符串放在一起,用一个定界符分割,可以使用join方法:
String str = String.join("/", "S","M","L","XL");

这样输出的 str = " S/M/L/XL "。

不可变字符串
String类没有提供修改字符串的方法,所以是无法修改Java中字符串中的字符的,所以根据这一特性,Java文档中将String类对象称为不可变字符串。

检测字符串是否相等

  • 检测字符串是否相等可以使用equals方法,相等返回true,不相等返回false。如果需要检测字符串是否相等,而不区分大小写,可以使用equalsIgnoreCase方法。
  • 注意一定不要使用==来检测两个字符串是否相等, ==只能用来确定两个字符串的地址是否相同,而不能判断字符串的内容是否相同。
  • 另外还可以使用compareTo 方法来判断两个字符串是否相等,如果相等的话,返回 0。
		String str ="hello";
		if(str.compareTo("Hello")==0)

空串与Null串
说到空串与Null串,大家可能会认为这两个不是同一种类型吗?其实不然,空串是一个字符串长度为0 的字符串,而Null串是一个字符串为Null。

  • 检测空串的方法:
if(str.length()==0)

或者

if(str.equals(""))
  • 检测Null串的方法:
if(str==null)

构建字符串
有时候,需要由较短的字符串构建字符串,例如:按键或来自文件中的单词。采用字符串连接的方法效率低下,每次连接字符串,都会生成一个新的String对象,即耗时,又浪费空间。所以,这个时候我们可以考虑使用StringBuilder类。

创建字符串构建器:StringBuilder builder = new StringBuilder();
添加字符串或字符:builder.append(str);
得到String对象:builder.toString();

StringBuilder类中还有许多方法,在这里我就不全部介绍了,感兴趣的可以在官方文档中查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楠哥聊AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值