欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java学习笔记09:字符串

程序员文章站 2022-04-10 23:26:31
...

常用方法

Java学习笔记09:字符串

package com.imooc.string;

public class StringDemo1 {
	public static void main(String[] args) {
		//定义一个字符串“JAVA 编程 基础”
		String str = "JAVA 编程 基础";
		//打印输出字符串的长度
		System.out.println("字符串的长度是:"+str.length()); 
		
		//字符串chatAt(int index)
		//取出字符程并输出
		System.out.println(str.charAt(6));
		
		//取出子串“编程 基础"并输出
		System.out.println(str.substring(5));
		
		//取出子串“编程"并输出
		System.out.println(str.substring(5,7));
		
		
	}

}



输出结果:

字符串的长度是:10

编程 基础
编程

indexOF(),lastIndexOf(),两个参数时的使用方法

package com.imooc.string;

public class StringDemo2 {
	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.indexOf("编程",8));		
		
	}

}

字符‘a’在字符串中第一次出现的位置:1
字符‘编程’在字符串中第一次出现的位置:4
字符‘a’在字符串中最后一次出现的位置:15
字符‘编程’在字符串中最后一次出现的位置:16
在字符串index值为8的位置开始,查找子串‘编程’第一次出现的位置16

Java学习笔记09:字符串

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

BGK和UTF-8编码问题

package com.imooc.string;

import java.io.UnsupportedEncodingException;

public class StringDemo3 {
	public static void main(String[] args) throws UnsupportedEncodingException {
		//字符串喝byte数组之间的相互转换
		//定义一个字符串
		String str = new String("JAVA 编程 基础");
		//将字符串转换为byte数组,并打印输出
		byte[] arrs = str.getBytes("GBK");
		for (int i = 0; i < arrs.length; i ++) {
			System.out.print(arrs[i]+" ");
		//汉字超过128字节,以负数形式溢出
		}
		
		System.out.println();	
		//将byte数组转换为字符串
		String str1 = new String(arrs,"GBK");
		System.out.println(str1);
			
	}
}

编码不符时会出现异常

74 65 86 65 32 -79 -32 -77 -52 32 -69 -7 -76 -95
JAVA 编程 基础

内存空间

Java学习笔记09:字符串
常量池和栈中的imooc的地址是不同的。
str3 str4看上去一样,创建的却是两个空间。

package com.imooc.string;

public class StingDemo5 {
	public static void main(String[] args) {
		// == 和 equals方法的区别
		// 定义三个字符串,内容都是imooc
		String str1 = "imooc";
		String str2 = "imooc";
		String str3 = new String("imooc");
		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));
	}

str1和str2的内容相同?true
str1和str3的内容相同?true
str1和str2的地址相同?true
str1和str3的地址相同?false

字符串的不可变性

package com.imooc.string;

public class StringDemo6 {

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

s1=imooc
s2=hello,imooc
子串hello
s3=hello,imooc!

Java学习笔记09:字符串

StringBuilder概述

String和StringBuilder的区别:

  • String具有不可变性,而StringBulder不具备
  • 当频繁操作字符串时,使用StringBulder

StringBuilder和StringBuffer

  • 两者基本相似
  • StringBuffer是线程安全的,StringBuilder则没有,所以性能略高
package com.imooc.string;

public class StringBuilderDemo1 {
	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!"));
		System.out.println(str);
		
		//将字符串变成"你好,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));
	}

str = 你好,你好,imooc!
你好,imooc!
替换后:你好,iMOOC!
你好

相关标签: 学习日记