java日常开发中,String类中常用的方法

本文详细介绍了String类中常用的12个方法,包括字符数组转换、字符提取、字节数组转换、长度获取、查找子串、去除空格、字符串截取、拆分、大小写转换、开头结尾判断、大小写比较和字符串替换,适合提升字符串操作技能。
摘要由CSDN通过智能技术生成

考虑到 String 在实际的工作之中使用非常的广泛,接下来介绍几类常用的方法。建议并希望读者将以下所讲解的每个方法的名称,返回值类型,参数类型及个数、方法的作用都尽可能的记下来。
下面就通过具体的应用范例来讲解 String 类中常用方法的基本使用。

目录

目录

 1.字符串与字符数组的转换

2.从字符串中取出指定位置的字符

3.字符串与byte数组的转换

4.取得一个字符串的长度

5.查找一个指定的字符串是否存在

6.去掉左右空格

7.字符串截取 

8.按照指定的的字符串拆分字符串

9.字符串的大小转换

10.判断是否以指定的字符串开头或结尾

11.不区分大小写进行字符串比较

12.将一个指定的字符串,替换成其他的字符串



 1.字符串与字符数组的转换

字符串可以使用 toCharArray() 方法变成一个字符数组,也可以使用 String 类的构造方法,把一个字符数组变成一个字符串

 用代码验证以上的方法(认真看其中的注释):


public class Main {
	public static void main(String[] args)
	{
		// 1.字符串与字符数组的转换
		String str="leixueyu"; // 字符串
		//字符串变字符数组  用toCharArray()函数
		char c[]=str.toCharArray();
		for(int i=0;i<c.length;i++)
		{
			System.out.print(c[i]+" "); //将数组中的字符一个一个输出  
		}
		System.out.println("");
		//字符数组变字符串  用String类的构造方法
		String str1=new String(c);  //将全部字符数组变成String
		String str2=new String(c,0,3);  //将部分字符数组变成String
		System.out.println(str1);  // 输出全部
		System.out.println(str2);  // 输出部分
	}
}

运行结果:

l e i x u e y u 
leixueyu
lei

2.从字符串中取出指定位置的字符

可以直接使用 String 类的 charAt() 方法取出字符串指定位置的字符

  用代码验证以上的方法(认真看其中的注释):


public class Main {
	public static void main(String[] args)
	{
		// 2.从字符串中取出指定位置的字符
		//  用charAt()
		String str="word";
		System.out.println(str.charAt(2)); //取出字符串中第3各字符
	}
}

运行结果:

r

3.字符串与byte数组的转换

字符串可以通过 getBytes() 方法将 String 变成一个 byte 数组,之后可以通过 String 的构造方法将一个字节数组重新变成字符串

用代码验证以上的方法(认真看其中的注释):


public class Main {
	public static void main(String[] args)
	{
		// 3.字符串与byte数组的转换
		String str="leixueyu";
		//字符串转成byte数组  用getBytes()方法
		byte b[]=str.getBytes();
//		for(int i=0;i<b.length;i++)  
//		{
//			System.out.print(b[i]+" ");  //输出字节
//		}
//		System.out.println("");
		//将全部的byte数组转成字符串
		String str1=new String(b);
		//将部分的byte数组转成字符串
		String str2=new String(b,0,3);
		// 输出
		System.out.println(str1);  //全部
		System.out.println(str2);  //部分
	}
}

 运行结果:

leixueyu
lei
 

4.取得一个字符串的长度

在 String 中使用 length() 方法取得字符串的长度

用代码验证以上的方法(认真看其中的注释):


public class Main {
	public static void main(String[] args)
	{
		// 4.取得一个字符串的长度
		// 用length(),也会将空格的长度算进去
		String str="lei xue yu";
		System.out.println("\""+str+"\"的长度为:"+str.length());
	}
}

 运行结果:

"lei xue yu"的长度为:10

 length 与 length()

许多初学者经常对" length "和" length() " 两者的关系搞不清楚,“在数组操作中, length 使用取得数组的长度,但是操作的最后没有 () .而字符串调用  length() 是一个方法,只要是方法后面都有 ' () '  ”。

5.查找一个指定的字符串是否存在

在 String 中使用 indexOf() 方法,可以返回指定的字符串的位置,如果不存在,则返回 -1

用代码验证以上的方法(认真看其中的注释):


public class Main {
	public static void main(String[] args)
	{
		// 5.查找一个指定的字符串是否存在
		//使用 indexOf()
		String str="leixueyu";
		System.out.println("字符\"i\"的位置:"+str.indexOf("i")); //查到返回位置
		System.out.println("字符\"u\"的位置:"+str.indexOf("u"));
		System.out.println("字符\"u\"的位置:"+str.indexOf("u",5));//从5(e)开始找
		System.out.println("字符\"a\"的位置:"+str.indexOf("a"));  //不存在返回-1
	}
}

  运行结果:

字符"i"的位置:2
字符"u"的位置:4
字符"u"的位置:7
字符"a"的位置:-1

可以使用 JDK1.5 后提供的 contains() 方法。

从 JDK1.5 开始,String 类 对于判断字符串是否存在的方法提供了 contains() (public  boolean contains (String  str ) ),此方法直接返回 boolean 型数据。 

 用代码验证以上的方法(认真看其中的注释):


public class Main {
	public static void main(String[] args)
	{
		// 用contains()   //返回是boolean型
		String str="leixueyu";   //字符串对象
		if(str.contains("lei"));  //子字符串存在
		{
			System.out.println("lei存在");
		}
		if(str.contains("lee"))
		{
			System.out.println("lee存在");
		}  
	}
}

运行结果:

lei存在
 

6.去掉左右空格

在实际的系统开发中,用户输入的数据中可能含有大量的空格,此时,使用 trim() 方法可以去掉字符串的左、右空格

 用代码验证以上的方法(认真看其中的注释): 


public class Main {
	public static void main(String[] args)
	{// 6.去掉左右空格
		//使用 trim() 方法
		String str="     leixueyu     ";  //含有空格的字符串
		System.out.println(str.trim());  //去掉左右空格后输出
	
	}
}

运行结果:

leixueyu

7.字符串截取 

在 String 中提供了两个 substring()  方法,一个是从指定位置截取到字符串结尾,另一个是截取指定范围的内容

  用代码验证以上的方法(认真看其中的注释):


public class Main {
	public static void main(String[] args)
	{
		// 7.字符串截取
		String str="hello world";   // 原字符串
		System.out.println(str.substring(6));  //从第七个位置开始截取
		System.out.println(str.substring(0,5));  //截取 0-5 位置上的内容
		System.out.println(str); 
	
	}
}

运行结果:

world
hello
hello world

8.按照指定的的字符串拆分字符串

 在 String 中通过 split() 方法可以进行字符串的拆分操作,拆分的数据将以字符串数组的形式返回

  用代码验证以上的方法(认真看其中的注释):


public class Main {
	public static void main(String[] args)
	{
		// 8.按照指定的的字符串拆分字符串
		//用 split() 方法
		String str="hello world";
		String s[]=str.split(" "); //以空格拆分->可以拆分成两部分hello和world
		for(int i=0;i<s.length;i++)// 其实这里的s.length=2,因为只有两个字符串
		{
			System.out.println(s[i]);
		}
	
	}
}

运行结果:

hello
world

本程序是根据空格进行字符串的拆分,如果在使用 split() 方法时只设置一个空字符串“ "" ”,那么就表示按照每一个字符进行拆分 

split() 的一个小细节:

实际上  split() 方法的字符串拆分能否正常进行都与正则表达式的操作有关,所以有时候会出现无法拆分的情况。

例如,现在给一个IP地址(192.168.1.2),那么肯定首先想到的是根据  “.” 拆分,而如果直接使用  “.”是不可能正常拆分的(观察下面两个实例)

 实例一:错误的拆分方法


public class Main {
	public static void main(String[] args)
	{
		// split() 的转义操作
		String str="192.168.1.2";
		String s[]=str.split(".");
		for(int i=0;i<s.length;i++)
		{
			System.out.print(s[i]+"、");
		} 
	
	}
}

此时是不能够正常执行的,而要向正常执行,必须对要执行的  “.” 进行转义,在 java 中转义要使用 “\\” (“ \\”表示一个 “\” )描述。

 实例二:正确的拆分方法


public class Main {
	public static void main(String[] args)
	{
		// split() 的转义操作
		String str="192.168.1.2";
		String s[]=str.split("\\.");
		for(int i=0;i<s.length;i++)
		{
			System.out.print(s[i]+"、");
		} 
	
	}
}

运行结果:

192、168、1、2、

9.字符串的大小转换

在用户输入信息时有时需要统一输入数据的大小写,那么此时就可以使用 toUpperCase()  和toLowerCase() 两个方法完成大小写的转换操作

toUpperCase() -->小写转大写

toLowerCase() -->大写转小写

  用代码验证以上的方法:


public class Main {
	public static void main(String[] args)
	{
		// 9.字符串的大小转换
		// toUpperCase()->小写转大写 toLowerCase()->大写转小写
		System.out.println("\"hello world\"的大写:"+"hello world".toUpperCase());
		System.out.println("\"HELLO WORLD\"的小写: "+"HELLO WORLD".toLowerCase());
	
	}
}

 运行结果:

"hello world"的大写:HELLO WORLD
"HELLO WORLD"的小写: hello world
 

10.判断是否以指定的字符串开头或结尾

在  String 中使用  startsWith()  方法可以判断字符串是否有以指定的内容开头,使用 endsWith() 方法可以判断字符串是否以指定的内容结尾

  用代码验证以上的方法:


public class Main {
	public static void main(String[] args)
	{// 10.判断是否以指定的字符串开头或结尾
		// startsWith()判断开头 endsWith()判断结尾
		String str1="**helloworld";   //定义字符串
		String str2="helloworld**";   //定义字符串
		// 判断是否以"**"开头
		if(str1.startsWith("**"))
		{
			System.out.println(str1+"以\"**\"开头");
		}
		// 判断是否以"**"结尾
		if(str2.endsWith("**"))
		{
			System.out.println(str2+"以\"**\"结尾");
		}
	}
}

 运行结果:

**helloworld以"**"开头
helloworld**以"**"结尾
 

11.不区分大小写进行字符串比较

在 String 中可以通过 equals() 方法进行字符串内容的比较,但是这种比较方法是区分大小写的比较,如果要完成不区分大小写的比较,则可以使用 equalsIgnoreCase() 方法

  用代码验证以上的方法:


public class Main {
	public static void main(String[] args)
	{
		// 不区分:equals() 区分:equalsIgnoreCase()
		String str1="HELLO";
		String str2="hello";
		//大小写不区分:equals()
		System.out.println("\"HELLO\"equals\"hello\":"+str1.equals(str2));
		//大小写区分:equalsIgnoreCase()
		System.out.println("\"HELLO\"equalsIgnoreCase\"hello\":"+str1.equalsIgnoreCase(str2));
		
	}
}

 运行结果:

"HELLO"equals"hello":false
"HELLO"equalsIgnoreCase"hello":true
 

12.将一个指定的字符串,替换成其他的字符串

使用 String 的 replaceAll() 方法,可以将字符串的指定内容进行替换


public class Main {
	public static void main(String[] args)
	{
		// 12.将一个指定的字符串,替换成其他的字符串
		// replaceAll("被替换内容","替换内容")
		String str="hello";
		String newstr=str.replaceAll("l", "x");  // 将 l 换成 x
		System.out.println(newstr); 
	}
}

运行结果:

hexxo

以上 的 12 种方式就是String类比较常用的,可以选择慢慢记,多写几遍。最后,如有问题,欢迎留言。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值