Java字符串用法

本文围绕Java字符串展开,介绍了字符串声明需用双引号包围且要初始化,创建方法有多种。还阐述了字符串操作方法,如查找索引、截取子串等。同时指出直接用“+”修改字符串开销大,推荐使用String - Builder类提高频繁修改字符串的效率。

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

字符串声明

字符串是Java程序中经常处理的对象,Java语言中字符串必须包含在一对双引号(“”)之内,由双引号包围的都是字符串,不能作为其他数据类型来使用,如:“1+2”的输出结果不是3.

String str;//来声明字符串变量

声明字符串变量必须经过初始化才能使用,否则编译器可能会报错。

创建字符串

String类的创建方法有下:

  1. String(char a[])用一个字符数组来创建String对象
  2. String(char a[],int offset,int length)提取字符串数组a中的一部分创建String对象,参数offset表示开始截取子楚川的位置,length表示长度。
  3. 处理通过String类的构造方法,还可以通过字符串常量的引用赋值给一个字符串变量。String s="abcd"
    注意:只要“+”运算符的一个操作数是字符串,编译器就会将另一个操作数转换成字串形式,所以应谨慎地将其他数据类型与字符串相连。

字符串操作方法

  1. indexOf(String s)返回参数字符串s在制定字符串中首次出现的索引位置
  2. lastIndexOf(Strign str) 返回制定字符串最后一次出现的索引位置
  3. charAt(int index) 返回指定索引处的字符
  4. substring(int beginIndex) 返回的是从指定的索引位置开始,直到最后的子串
  5. substring(int beginIndex,int endIndex) 返回的是从指定的索引位置开始,到指定的结位置的子串
  6. trim()返回字符串的副本,忽略前导空格和尾部空格
  7. replace(char oldChar,char newChar)实现将指定的字符或字符串replace(),如果字符串oldChar没有出现在该对象表达式中的字符串序列中,则将原字符串返回
  8. startWith(String prefix) 判断当前字符串的前缀是否为参数指定的字符串
  9. endWith(String suffix) 判断当前字符串否以参数指定的字符串结尾
  10. 对字符串的比较不能简单的用“==”,这个比较的时两个字符串的地址是否相同,即使两个字符串内容相同,两个对象的内存地址也是不同的。 应当使用equals(String other)或者equalsIgnoreCase(String other)忽略大小写
  11. compareTo(String otherStr)为按照字典序比较两个字符串该比较基于字符串中各个字符的Unicode值,按字典顺序将此String对象表示的字符序列于参数字符串所表示的字符序列进行比较。如果按照字典序此String对象位于参数String 之前,则比较结果为一个负整数,如果在其之后,结果是一个正整数,如果相等,返回0
  12. toLowerCase()转换成为小写,如果没有应该被转换的字符,返回原字符串
  13. toUpperCase()转换成为d大写,如果没有应该被转换的字符,返回原字符串
  14. spilt(String sign)根据给定的分隔符也可以是正则表达式,将字符串分割为若干个字符串,返回字符串数组
  15. spilt(String sign,int limit)根据给定的分隔符或正则表达式,将字符串分割为若干个字符串,只分割前limit次返回字符串数组
public class Str {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String s ="192.168.1.1";
		String[] res =s.split("\\.");
		String[] res2 =s.split("\\.",2);
		for(String st:res) System.out.print("["+st+"] ");
		System.out.println();
		for(String st:res2) System.out.print("["+st+"] ");
	}
}

在这里插入图片描述
16. format(String format,Object ...args)该方法使用指定的格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用本地默认的语言环境(English | 汉语)。
17. format(Local l,String format,Object ...args) l:格式化过程中要是使用的语言环境,l为null则不进行本地化,format:格式字符串,args:格式化字符串中由格式说明符引用的参数,如果还有格式说明符意外的参数,则忽略这些额外的参数,这些额外的参数。此参数的输不是可变的,且可以时0
常用的地方时在时间日期的输出:

public class Str {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Date day = new Date();
		String s=String.format("%tc", day);
		System.out.print(s);//2008-03-25
	}
}

字符串生成器

创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“+”可以达到附加新字符串或字符串的目的,但“+”会产生一个新的String实例,回在内存中创建新的字符串对象。如果重复地对字符串进行修改,将极大地增加系统开销。使用可变的字符序列String-Builder类,大大提高频繁增加字符串的效率。

  1. append(content)该方法向字符串生成器中追加内容,可以是任何类型的数据或者其他对象。
  2. insert(int offset,arg)该方法向字符串生成器中的指定位置插入数据内容,可以是任何类型的数据的不同重载形式,可实现向字符串中插入int,boolean,char和float等基本数据类型或其他对象。
  3. delete(int start,int end)移除此序列的子字符串中的字符。该子字符串从指定的start处开始一直到索引end-1处的字符,如果不存在,则一直到序列尾部。如果start=end,不做任何更改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

There Is No Code

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

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

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

打赏作者

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

抵扣说明:

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

余额充值