黑马程序员——String类及相关类

本文详细介绍了Java中String类的方法,包括字符串的获取、判断、转换等操作,同时对比了StringBuffer与StringBuilder的区别及应用场景。

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

------- android培训java培训、期待与您交流! ----------

前序 导图


一、String类

String类适用于描述字符串事物。那么它就中提供的方法对字符串进行操作。

1、获取。

      1.1 字符串中的包含字符数,也就是字符串的长度。

           int length();获取长度。

      1.2 根据位置获取位置上的某个字符。

           char charAt(int index);

      1.3 根据字符获取该字符在字符中的位置。

           int indexOf(int ch);返回的是ch在字符中的第一次出现的位置。

           int indexOf(int ch,int fromIndex);从fromIndex指定的位置,ch在字符中出现的位置。

           int indexOf(String strr);返回的是trr在字符中的第一次出现的位置。

           int indexOf(String strr,intfromIndex);从fromIndex指定的位置,strr在字符中出现的位置。

           lastIndexOf(int ch) 从后住前查找

2、判断。

      2.1 字符串是否包含某一个字符串。

           boolean containWith(str);

           特殊之处:indexof(str);可以索引出现的位置,如果返回-1,表示str不在字符串中存在。

           所以,也可以用对指定判断是否包含。

           if(str.indexOf("aa")!=-1)

           且该方法可以判断,又可以获取出现的位置。

      2.2 字符串中是否有内容。

           boolean isEmpty(str);原理是判断长度是否为零;

      2.3 字符串是否以指定内容开头。

           boolean startsWith(str)

      2.4 字符串是否以指定内容结尾。

           boolean endsWith(str);

      2.5 判断字符串的内容是否相同。复写Object类中的equals方法。

           boolean equals();

      2.6 判断内容是否相同,并忽略大小写。

           boolean equalsIgnoreCase();

3、转换

      3.1 将字符数组转成字符串。

           构造函数:

                 String(char[])

                 String(char[],offset,count):将字符数组中的一部分转成字符串。

           静态方法:

                 static String (char[])

                 static StringcopyValueOf(char[],offset,count)

                 static String valueOf(char[])

      3.2 将字符串转成字符数组。

                 char[] toCharArray()

      3.3 将字节数组转成字符串数组。

                 String(byte[])

                 String(byte[],offset,count):将字符数组中的一部分转成字符串。

      3.4 将字符串数组转成字节数组。

                 byte[]getBytes()

      3.5 将基本数据类型转成字符串。

           static String valueOf(int)

           static String valueOf(double)

 

           //3+"";//String.valueOf(3);

特殊:字符串和字节数组在转换过程中,是可以指定编码表的。

4、替换

      String replace(oldchar,newchar)

5、切割

      String[] splite(regex)

6、子串,获取字符串中的一部分。

      String substring(begin);从begin开始到结尾

      String substring(begin,end);从begin开始到end前一个

7、转换、去除空格、比较

      7.1 将字符串转成大写或者小写。

           String toUpperCase()

           String toLowerCase();

      7.2 将字符串两端的多个空格去除。

           String trim()

      7.3 对两个字符串进行自然顺序的比较。

           int compareTo(String)

      程序代码:

class  StringMethodDemo
{
	public static void method_7()
	{
		String s = "Hello Java";
		sop(s.toUpperCase());
		sop(s.toLowerCase());
		sop(s.trim());
		String s1 = "abd";
		String s2 = "abe";
		sop(s1.compareTo(s2));
	}
	public static void method_substring()
	{
		String s = "abddkjfkd";
		sop(s.substring(2));
		sop(s.substring(2,4));
	}
	public static void method_splite()
	{
		String s = "zhangsan,lili,lisi";
		String[] arr = s.split(",");
		for (int x=0; x<arr.length;x++ )
		{
			sop(arr[x]);
		}
	}
	public static void method_replace()
	{
		String s = "hello java";
		String s1 = s.replace('a','n');//如果替换字符不存在,返回的是原字符串
		sop("s = "+s);
		sop("s1 = "+s1);
	}
	public static void method_trans()
	{
		char[] arr = {'a','b','c','d','e','f','g'};
		String s = new String(arr,1,3);
		sop("s = "+s);
		String s1 = "abcdhgfjdk";
		char[] chs = s1.toCharArray();
		for (int x=0; x<chs.length;x++ )
		{
			sop("chs ="+chs[x]);
		}
	}
	public static void method_get()
	{
		String str = "abcdeeadf";
		//长度
		sop(str.length());
		//获取字母
		sop(str.charAt(3));//StringIndexOutOfBoundsException: String index out of range: 10 超过长度运行会提示角标越界提醒
		//获取字符位置
		sop(str.indexOf('z'));//找不到字符返回-1
		sop(str.indexOf('a',3));
		sop(str.indexOf("ee"));
		sop(str.lastIndexOf('d'));//反向
	}
	public static void method_is()
	{
		String str = "ArrayDemo.java";
		sop(str.startsWith("Array"));//判断文件名是否以Array开头
		sop(str.endsWith(".java"));//判断文件名是否以.java结尾
		sop(str.contains("Demo"));//判断文件名是否包含Demo
	}


	public static void main(String[] args) 
	{
		method_7();
		//method_substring();
		//method_splite();
		//method_replace();
		//method_get();
		//method_is();
		//method_trans();		
		/*
		String s1 = "abc";
		String s2 = new String("abc");
		String s3 = "abc";
		System.out.println(s1==s2);//false
		System.out.println(s1==s3);//true
		*/
	}
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}


二、StringBuffer类

StringBuffer是字符串缓冲区

是一个容器

特点:

1.长度是可以变化的。

2.可以操作多个数据类型。

3.最终会通过toString方法变成字符串。

 

Ccreate      U update     R read  Ddelete

1、存储

      StringBuffer append() :将指定数据作为参数添加到已有数据结尾处;

      StringBuffer insert(index,数据) :可以将数据插入到指定index位置

2、删除

      StringBuffer delete(start,end):删除缓冲区的数据,包含start,不包含end。

      StringBuffer deleteCharAt(index)

3、获取

      char charAt(int index)

      int indexOf(String str)

      int lastIndexOf(String str)

      int length()

      String substing(int start,int end)

4、修改

      StringBuffer replace(start,end,string)

      void setCharAt(index,char ch)

 

5、反转

      StringBuffer revers()

6、将缓冲区指定数据存储到指定字符数组中区

void getChars(intsrcBegin,int srcEnd.char[],int dstBegin)

三、StringBuilder类

JDK1.5版本之后出现了StringBuilder。

StringBuffer线程同步

StringBuilder线程不同步

 

升级三个因素质:

1、提高效率。

2、简化书写。

3、提高安全性。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值