java String常用方法梳理

本文详细介绍Java中字符串的各种操作方法,包括长度获取、字节转换、截取、比较、替换、大小写转换等,并通过示例代码展示每种方法的使用方式。

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

 

 

常用方法如下:

1.获取字符串长度:     
       

 strmsg.length();


2.字符串转为字节:
        

strmsg.getBytes();


3.截取字符串 从第几位开始
     

   strmsg.substring(int beginIndex);


4.截取字符串 从第几位开始到第几位结束
        

strmsg.substring(int beginIndex,int endIndex);


5.比较两个字符串是否相等,后者不区分大小写
 

        strmsg.equals(anObject);
        strmsg.equalsIgnoreCase(anotherString);


6.替换字符串中的某个字符
        

strmsg.replace(oldChar, newChar);


7.去除收尾空格
      

  strmsg.trim();


8.获取从第几位到第几位的字符数组
       

 strmsg.getChars(int srcBegin, int srcEnd, char dst[], int dstBegin);


9.将字符串转为字符数组
      

  strmsg.toCharArray();


10.比较两个字符串大小,后者不区分大小写
 

        strmsg.compareTo(String anotherString);
        strmsg.compareToIgnoreCase(String str);


11.字符串以suffix字符串开始,结束
 

        strmsg.startsWith(suffix);
        strmsg.endsWith(suffix);

测试代码:

package demo;

public class StringUtils {
	public static void main(String[] args) {
		StringDemo();
	}
	public static void StringDemo() {
		String strmsg="are you ok!";
//		length()字符串长度
		System.out.println("字符串长度:"+strmsg.length());
//		charAt(2)截取一个字符
		System.out.println("字符:"+strmsg.charAt(2));
//		getchars()截取多个字符并由其他字符串接收
		char[] ss=new char[10];
		strmsg.getChars(0, 6, ss, 0);
		System.out.println("截取字符串到字符数组:"+new String(ss));
//		getBytes()将字符串变成一个byte数组
		System.out.println("byte数组"+new String(strmsg.getBytes()));
//		 toCharArray()将字符串变成一个字符数组
		char[] b=strmsg.toCharArray();
		System.out.println("字符数组:"+new String(b));
//		equals()和equalsIgnoreCase()比较两个字符串是否相等,前者区分大小写,后者不区分
		System.out.println("比较两个字符串是否相等:"+strmsg.equals("are you ok!"));
		System.out.println("比较两个字符串是否相等(不区分大小写):"+strmsg.equalsIgnoreCase("are you OK!"));
//		startsWith()和endsWith()判断字符串是不是以特定的字符开头或结束
		System.out.println("判断字符串以什么开头:"+strmsg.startsWith("are"));
		System.out.println("判断字符串以什么结束:"+strmsg.endsWith("ok"));
//		toUpperCase()和toLowerCase()将字符串转换为大写或小写
		System.out.println("字符串转大写:"+strmsg.toUpperCase());
		System.out.println("字符串转小写:"+"ARE YOU OK".toLowerCase());
//		concat() 连接两个字符串
		System.out.println("连接字符串:"+strmsg.concat("AREYOUOK"));
		System.out.println("拼接字符串:"+"AREYOUOK".concat(strmsg));
//		trim()去掉起始和结束的空格
		System.out.println("去掉开始结束空格:"+strmsg.trim());
		System.out.println("去掉开始结束空格:"+"  ARE YOU OK  ".trim());
//		substring()截取字符串
		System.out.println("截取字符串结果:"+strmsg.substring(5));
		System.out.println("截取字符串结果:"+"AREYOUOK".substring(5 ,8));
//		indexOf()和lastIndexOf()前者是查找字符或字符串第一次出现的地方,后者是查找字符或字符串最后一次出现的地方
		System.out.println("查找第一次出现位置:"+strmsg.indexOf("are"));
		System.out.println("查找第一次出现位置:"+strmsg.indexOf("are11"));
		System.out.println("查找第一次出现位置:"+strmsg.lastIndexOf("k"));
//		compareTo()和compareToIgnoreCase()按字典顺序比较两个字符串的大小,前者区分大小写,后者不区分
		System.out.println("aaaaa".compareTo("aaaaa"));
		System.out.println("aaaaa".compareTo("bbbbb"));
		System.out.println("aaaaa".compareToIgnoreCase("AAAAA"));
//		replace() 替换
		System.out.println("替换结果打印:"+strmsg.replace("o", "O"));
	}
}

测试输出结果:

字符串长度:11
字符:e
截取字符串到字符数组:are yo
are you ok!
字符数组:are you ok!
比较两个字符串是否相等:true
比较两个字符串是否相等(不区分大小写):true
判断字符串以什么开头:true
判断字符串以什么结束:false
字符串转大写:ARE YOU OK!
字符串转小写:are you ok
连接字符串:are you ok!AREYOUOK
拼接字符串:AREYOUOKare you ok!
去掉开始结束空格:are you ok!
去掉开始结束空格:ARE YOU OK
截取字符串结果:ou ok!
截取字符串结果:UOK
查找第一次出现位置:0
查找第一次出现位置:-1
查找第一次出现位置:9
0
-1
0
替换结果打印:are yOu Ok!

总结:

equals的效率高些,compareTo其实就是按照编码的数值求差值,根据差值进行比较,它能确定两个String在字典顺序上的前后性,当你只是想知道是否一致时,用equals也行,效果一样。


另外,equals是Object的方法,要求涉及到比较操作的继承类要自己重写该方法,所以String重写了equals,而compareTo为String的方法。所以:
value1.compareTo(value2),当value1不为String类型时,会报错。
但是Object类 只有.equals(),没compareTo
Object是根类,它有的方法,其他类都可以继承,使用.所以.equals 基本随时能用.


一、对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。
 1、“==”比较两个变量本身的值,即两个对象在内存中的首地址。
(java中,对象的首地址是它在内存中存放的起始地址,它后面的地址是用来存放它所包含的各个属性的地址,所以内存中会用多个内存块来存放对象的各个参数,而通过这个首地址就可以找到该对象,进而可以找到该对象的各个属性)
 2、“equals()”比较字符串中所包含的内容是否相同。

		String s1,s2,s3 = "abc", s4 ="abc" ;
        s1 = new String("abc");
        s2 = new String("abc");
        System.out.println("s1==s2:"+(s1==s2));
        System.out.println("s1==s3:"+(s1==s3));
        System.out.println("s1==s4:"+(s3==s4));
        System.out.println("s1.equals(s2):"+(s1.equals(s2)));
        System.out.println("s1.equals(s3):"+(s1.equals(s3)));
        System.out.println("s3.equals(s4):"+(s3.equals(s4)));
s1==s2:false
s1==s3:false
s1==s4:true
s1.equals(s2):true
s1.equals(s3):true
s3.equals(s4):true

开发中尽量用equals。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值