Java中关于String类与StringBuffer类的介绍

String

String的获取功能

public int length() 获取字符串长度
public char charAt(int index):获取指定索引处的字符
public int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引
public int indexOf(String str):子字符串在大字符串中第一次出现的索引
public int lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引
public String substring(int beginIndex):从指定位置开始截取,默认截取到末尾
public String substring(int beginIndex, int endIndex):从指定位置开始截取,截取到指定位置结束(包前,不包后)

//定义一个字符串
String str = "helloworld" ;
//		int length():获取字符串长度
System.out.println("length():"+str.length());

//public char charAt(int index):获取指定索引处的字符
System.out.println("charAt():"+str.charAt(4));  //可以去遍历字符串

//public int indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引
System.out.println("indexIf():"+str.indexOf('l'));
System.out.println("indexIf():"+str.lastIndexOf('l'));

//public int indexOf(String str):子字符串在大字符串中第一次出现的索引
System.out.println("indexOf():"+str.indexOf("owo"));

//public String substring(int beginIndex)
System.out.println("substring():"+str.substring(4));
System.out.println("substring():"+str.substring(0));

//public String substring(int beginIndex, int endIndex)
System.out.println("substring():"+str.substring(3, 8));//lowor   :包前,不包后

替换功能:

String replace(char oldChar, char newChar) :将指定的字符替换以前的字符
String replace(String oldString, String newString):将以前的子字符串替换新的子字符串

去除两端空格:

public String trim()

//定义一个字符串:
String s = "helloworld" ;
System.out.println("replace:"+s.replace("owo", "jdk"));
System.out.println("---------------------------------");

String s2 = " hello world " ;
System.out.println("s2:"+s2);
//去除两端空格
String s3 = s2.trim() ;
System.out.println("s3:"+s3);

/**
* 按字典顺序比较!
* public int compareTo(String anotherString):字符串比较方法
*/

String s4 = "abc" ; //['a','b','c']    ---3
String s5 = "hello" ;//['h','e','l','l','o'] --5
System.out.println(s4.compareTo(s5));//--7

String类型的转换功能

public byte[] getBytes() :将字符串转换成字节数组
public char[] toCharArray():将字符串转换为字符数组
public static String valueOf(XXX 变量名) ;可以将任意类型转换为String类型
public String toLowerCase() :将字符串转换小写
public String toUpperCase():将字符串转换成大写

//定义一个字符串:
String str = "JavaSE" ;

//	byte[] getBytes() :将字符串转换成字节数组
byte[] bys = str.getBytes() ; //如果是当前平台编码集:是个一个gbk,参数省略;
for(int x = 0 ; x Integer
 * char--->Character
 * long--->Long
 * byte--->Byte
 * short-->Short
 * boolean--->Boolean
 * float-->Float
 * double-->Doouble
 */

//int---->String			//int(自动拆箱)<---->Integer基本的类型包装类型(自动装箱)--->String类型
int i = 100 ;
String s1 = String.valueOf(i) ; //String:特殊valueOf()
System.out.println(s1);

int i2 = Integer.parseInt(s1) ; //可以将String--->int类型


//public String toLowerCase() :将字符串转换小写
System.out.println("toLowerCase():"+str.toLowerCase());
//public String toUpperCase():将字符串转换成大写
System.out.println("toUpperCase():"+str.toUpperCase());

//public String concat(String str)将指定字符串连接到此字符串的结尾。 
String str1 = "hello" ;
String str2 = "world" ;
System.out.println(str1+str2);
//拼接功能
System.out.println(str1.concat(str2));

StringBuffer类

StringBuffer:线程安全的可变字符序列

StringBuffer(容器)和String的区别?

前者是线程安全的类,可变的字符序列,内存中提供字符串缓冲区;后者是不可变的字符序列。
从内存角度考虑:前者优于后者:
String类型:在方法区中开辟空间—>占内存
StringBuffer :里面存在初始容量,里面不断的追击字符串(append)

StringBuffer的构造方法

public StringBuffer() 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
public StringBuffer(int capacity):指定容量大小
public StringBuffer(String str):构造一个字符串缓冲区:里面的容量(字符串内容英文)大小:字符串长度+16初始容量

StringBuffer获取功能

public int capacity():初始容量
public synchronized int length():返回字符串长度

		//创建一个字符串缓冲区
   	//无参构造
   	StringBuffer sb = new StringBuffer() ;
   	System.out.println(sb);
   	System.out.println("length():"+sb.length());
   	System.out.println("capacity():"+sb.capacity());
   	
   	System.out.println("--------------------------------");
   	
   	//public StringBuffer(int capacity):指定容量大小
   	StringBuffer sb2 = new StringBuffer(50);
   	System.out.println("length():"+sb2.length());
   	System.out.println("capacity():"+sb2.capacity());
   	
   	System.out.println("--------------------------------");
   	
   	//StringBuffer类似于String类型的缓冲区
//		String s = "hello" ;
//		StringBuffer sb4 = s;  //错误的
//		StringBuffer sb3 = "hello" ;//错误的
   	StringBuffer sb3 = new StringBuffer("hello") ;
   	System.out.println(sb3);
   	System.out.println("length():"+sb3.length());
   	System.out.println("capacity():"+sb3.capacity());

StringBuffer的添加功能

StringBuffer append(xxx x):将指定的内容追加(末尾追加)到字符串缓冲区中,返回StringBuffer本身
public StringBuffer insert(int index,xxx x):在指定位置处,插入一个新的内容,返回StringBuffer本身

   //创建一个字符串缓冲区
StringBuffer sb = new StringBuffer()	 ;
System.out.println(sb);

//StringBuffer append(xxx x)
/*System.out.println(sb.append("hello"));
System.out.println(sb.append(true));
System.out.println(sb.append('A'));
System.out.println(sb.append(12.34));
System.out.println(sb.append(100));
System.out.println(sb);*/

/*sb.append("hello") ;
sb.append(true) ;
sb.append(false) ;
sb.append('A') ;
sb.append(12.34) ;
sb.append(100) ;
System.out.println("sb:"+sb);*/

// 链式编程
sb.append("hello").append(true).append('a').append(100).append(12.34) ;
System.out.println("sb:"+sb);

//public StringBuffer insert(int index,xxx x)
sb.insert(5, "world") ;
System.out.println("sb:"+sb);

StringBuffer的删除功能

StringBuffer deleteCharAt(int index) :删除指定位置出的字符,返回字符串缓冲区本身
StringBuffer delete(int start, int end) :删除从指定位置开始到指定位置结束,返回值字符串缓冲区本身

		//创建字符串缓冲区
		StringBuffer sb = new StringBuffer() ;
		
		//添加内容
		sb.append("hello").append("world") ;
		
		System.out.println(sb);
		
		//需求:要删除:e这个字符
		/*sb.deleteCharAt(1) ;
		System.out.println(sb);
		//需求:删除第一个l这个字符
		System.out.println(sb.deleteCharAt(1));*/
		
		//StringBuffer delete(int start, int end) 
		System.out.println(sb.delete(3, 8)); //包前不包后

StringBuffer的替换功能

public StringBuffer replace(int start,int end,String str):从指定位置开始到指定位置结束,用给定的str字符串替换指定的字符内容

//构造一个字符串缓冲区
StringBuffer sb = new StringBuffer() ;

//追加
sb.append("hello") ;
sb.append("world") ;
sb.append("java") ;

System.out.println(sb);

System.out.println(sb.replace(5, 10, "节日快乐"));

StringBuffer的反转功能

public synchronized StringBuffer append(String str) 反转功能

StringBuffer sb = new StringBuffer() ;

sb.append("我爱你") ;
System.out.println("sb:"+sb);

sb.reverse() ;
System.out.println("sb:"+sb);

StringBuffer的截取功能

String substring(int start) :从指定位置默认截取到末尾,返回一个新的字符串
String substring(int start,int end):从指定位置开始截取到指定位置结束

//创建缓冲区对象
StringBuffer sb = new StringBuffer() ;

sb.append("hello") ;
sb.append("world") ;
sb.append("java") ;

//System.out.println(sb.substring(3)) ; //返回的是本截取的字符串内容

System.out.println(sb.substring(3, 8));
System.out.println(sb);

你可能感兴趣的:(JavaSE)