String类

String类

一、如何创建String对象

创建一个字符串对象的方式有三种:

String s1="CSDN";// 使用字符串常量“CSDN”创建一个字符串对象并命名为s1
String s2= new String();//使用new关键字创建字符串对象并命名为s2,字符串的值为空串
String s3= new String("CSDN");//使用字符串常量‘CSDN’创建对象,会先去常量池中查看‘CSDN’字符串是否存在,存在直接使用创建对象,不存在先创建字符串,再创建对象,并命名为s3

二、String对象的常用方法

方法简单说明用途
int length()返回当前这个字符串的长度
int indexOf(int ch)查找传入的 ch 字符在字符串中第一次出现的位置
int indexOf(String str)查找传入的 str 子字符串在字符串中第一次出现的位置
int lastIndexOf(int ch)查找传入的 ch 字符在字符串中最后一次出现的位置
int lastIndexOf(String str)查找传入的 str 子字符串在字符串中最后一次出现的位置
String substring(int beginIndex)获得从beginIndex 位置开始到结束的子字符串
String substring(int beginIndex, int endIndex)获得从beginIndex 位置开始到endIndex位置的子字符串
String trim()返回一个字符串,功能去除字符串的前后空格
boolean equals(Object obj)字符串与指定的字符串比较,返回true 或 false
String toLowerCase()字符串转换成小写形式
String toUpperCase()字符串转换成大写形式
char charAt(int index)获取字符串指定位置的字符
String[] split(String regex.int limit)传入的字符串分割成子字符串,返回字符串数组
byte[] getBytes()将字符串转换成byte数组

方法使用如下:

package com.project.string;

public class StringDemo1 {

	public static void main(String[] args) {
		// 定义一个字符串"JAVA 编程 基础"
		String str="JAVA 编程 基础";
		//打印输出字符串的长度
		System.out.println("字符串的长度是:"+str.length());
		
		//取出字符'程'并输出
		System.out.println(str.charAt(6));//同数组一样从0开始索引
		
		//取出子串'编程 基础'并输出
		System.out.println(str.substring(5));
		
		//取出子串'编程'并输出
		System.out.println(str.substring(5,7));//[5,7)
	}

}

结果如下:
在这里插入图片描述

package com.project.string;

public class StirngDemo2 {

	public static void main(String[] args) {
		//定义一个字符串"JAVA编程基础,我喜欢java编程"
		String str=new String("JAVA编程基础,我喜欢java编程");
		
		//查找字符'A'在字符串第一次出现的位置
		System.out.println("查找字符'A'在字符串第一次出现的位置为:"+str.indexOf('A'));
		
		//查找子串'编程'在字符串中第一次出现的位置
		System.out.println("查找子串'编程'在字符串中第一次出现的位置为:"+str.indexOf("编程"));
		
		//查找字符'A'在字符串最后一次出现的位置
		System.out.println("查找字符'A'在字符串最后一次出现的位置为:"+str.lastIndexOf('A'));

		//查找子串'编程'在字符串中最后一次出现的位置
				System.out.println("查找子串'编程'在字符串中最后一次出现的位置为:"+str.lastIndexOf("编程"));
		
		//在字符串index值为8的位置开始,查找子串'编程'第一次出现的位置
				System.out.println("在字符串index值为8的位置开始,查找子串'编程'第一次出现的位置为:"+str.lastIndexOf("编程",8));
						
	}

}

结果如下:在这里插入图片描述

字符串与 byte 数组间的相互转换

public class StringDemo3 {

	public static void main(String[] args) {
		//字符串 和 byte 数组之间的相互转换
		//定义一个字符串
		String str=new String("JAVA 编程 基础");
		byte[] arr=str.getBytes();
		for(int i=0;i<arr.length;i++) {
			System.out.print(arr[i]+" ");
		}
		
		System.out.println();
		//将byte数组转换为字符串
		String str1= new String(arr);
		System.out.println(str1);
	}

}

结果如下:
在这里插入图片描述

三、== 和 equals 方法的区别

package com.project.string;

public class StringDemo4 {
	public static void main(String[] args) {
		//== 和 equals 方法的区别
		//定义三个字符串,内容都是SCND
		String str1="SCDN";
		String str2="SCDN";
		String str3=new String("SCDN");
		System.out.println("str1 和 str2 的内容相同嘛?"+str1.equals(str2));
		System.out.println("str1 和 str3 的内容相同嘛?"+str1.equals(str3));
		
		System.out.println("str1 和 str2 的地址相同嘛?"+(str1==str2));
		System.out.println("str1 和 str3 的地址相同嘛?"+(str1==str3));
		
		
	}
}

结果如下:
在这里插入图片描述

四、String的不可变性

package com.project.string;

public class StringDemo5 {
	public static void main(String[] args) {
		//String的不可变性
		//String对象一旦被创建,则不能修改,是不可变的
		//所谓的修改其实是创建了新的对象,所指的内存空间不变
		String s1="CSDN";
					s1="Hello,"+s1;
					//s1不再指向CSDN所在的内存空间,而是指向了"Hello,CSDN"
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值