首页 > 其他分享 >字符串的学习

字符串的学习

时间:2022-11-10 12:14:13浏览次数:36  
标签:String str1 System 学习 println 字符串 out

主要内容
1、如何创建String对象
2、String对象的常用方法
3、字符串和byte数组
4、==和equals方法的区别
5、String的不可变性
6、StringBuilder

1、如何创建String对象-->三种创建方法

        /**
	 * 三种创建方式
	 * 堆 用来存放new创建一个对象实例
	 * ,内存会在栈中声明一个str1变量,同时在变量池创建 imooc,如果变量已经存在这个字符串变量,则不创建,只把变量指向这个字符串变量。
	 * 第三种方法,内存会在栈中声明一个str3变量,同时在堆中新建一个字符串变量对象实例
	 */
	String str1 = "imooc";//创建一个字符串对象imooc,名为str1
	String str2 = new String();//创建一个空字符串对象imooc,名为str2
	String str3 = new String("imooc");//创建一个字符串对象imooc,名为str3

2、String对象的常用方法

常用方法练习如下:

	public static void main(String[] args) {
		/**
		 * length charAt substring 
		 */
//		字符串“JAVA 编程 基础”
		String str1 = "JAVA 编程 基础";
//		打印自字符串长度
		System.out.println("字符串长度:"+str1.length());
//		取出字符串 程 打印
		System.out.println(str1.charAt(6));
//		取出字符串 编程 基础 打印
		System.out.println(str1.substring(5));
//		取出字符串 编程 打印
		System.out.println(str1.substring(5, 7));
		String str2 = null;
		System.out.println(str2);
	}
public static void main(String[] args) {
		/**
		 * indexOf lastIndexOf 
		 */
//		定义一个字符串“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.indexOf("编程",8));
}

3、字符串和byte数组

	public static void main(String[] args) throws IOException {
		/**
		 * 字符串 和 byte数组
		 */
//		字符串和byte数组之间的相互转换
//		定义一个字符串
		String str = new String("JAVA 编程 基础");
//		将字符串转换为byte数组,并打印输出
//		byte[] arrs = str.getBytes("GBK");
		byte[] arrs = str.getBytes();//"UTF-8"
		for(int i=0;i<arrs.length;i++) {
			System.out.print(arrs[i]+" ");
		}
		System.out.println();
//		将byte数组转换为字符串
//		String str1 = new String(arrs,"GBK");
		String str1 = new String(arrs);//"UTF-8"
		System.out.println(str1);
	}

4、equals和 == 方法的区别
字符串中,equals方法用于比较字符串的值是否相同,==用于比较字符串的地址是否相同。

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

5、String的不可变性
String的不可变性,String对象一旦被创建,则不能修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不变。

	public static void main(String[] args) {
//		String的不可变性,String对象一旦被创建,则不能修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不变
		String str1 = "imooc";
		String str2 = "hello,"+str1;
		
//		str1不再指向imooc所在的内存空间,而是指向了"hello,imooc"
		System.out.println("str1="+str1);
		System.out.println("str2="+str2);
		
		String str3 = "hello,imooc";
		System.out.println("子串:"+str3.substring(0,5));
		System.out.println("str3="+str3);
	}

6、StringBuilder
String和StringBuilder的区别:String具有不可变性,而StringBuilder不具备。当频繁操作字符串时,使用StringBuilder。
StringBuilder和StringBuffer:两者基本相似,StringBuffer是线程安全的,而StringBuilder则没有,所以性能略高。在执行速度方面StringBuilder大于StringBuffer。

	public static void main(String[] args) {
		StringBuilder str = new StringBuilder("您好");
//		在 您好 后面添加内容,将字符串变成 您好,imooc!
//		str.append(",");
//		str.append("imooc!");
//		System.out.println("str="+str);
		System.out.println("str="+str.append(',')+str.append("imooc!"));
		
//		将字符串变成  您好,iMOOC!
//		两种方式
//		1、使用delete方法删除mooc,然后再插入MOOC
//		System.out.println("替换后:"+str.delete(4, 8).insert(4,"MOOC"));
//		2、使用replace方法直接替换
		System.out.println("替换后:"+str.replace(4, 8, "MOOC"));
		
//		在字符串 你好,iMOOC中取出 你好 打印
		System.out.println(str.substring(0,2));
	}

标签:String,str1,System,学习,println,字符串,out
From: https://www.cnblogs.com/LittleKevin/p/16876278.html

相关文章