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

String、StringBuffer、StringBuffer的一些常用方法和应用

程序员文章站 2022-04-19 17:37:01
...

1. String类

public class practice3 {
	public static void main(String[] args) {
		String s1="HelloWorld";
//char charAt(int index) 输入字符串对应下标获取该下标对应的字符
		char ch = s1.charAt(5);
		System.out.println(ch);   /* w */
//int indexOf(int ch)	输入字符获取对应的下标
		int a = s1.indexOf('o');
		System.out.println(a); /* 4 */
//int indexOf(String str) 输入的字符串位于哪个位置
		int c =s1.indexOf("llo");
		System.out.println(c);/* 2 */
//int indexOf(int ch,int fromIndex)	
//从fromIndex索引开始,查找第一次出现ch字符的索引
		int b = s1.indexOf('r', 1);
		System.out.println(b);/* 7 */
// int indexOf(String str,int fromIndex)	
//	从fromIndex索引开始,查找第一次出现str字符串的索引	
		int d = s1.indexOf("lloW", 1);	
		System.out.println(d);/* 2 */
//int lastIndexOf(int ch)  从后面数字符ch的索引
		int lastIndexOf = s1.lastIndexOf('W');
		System.out.println(lastIndexOf);/* 5 */
//String substring(int start)  输出从start到end内的字符串;左闭右开;
		System.out.println(s1.substring(5, 7));
		System.out.println(s1.substring(2));		
	}
}
public class practice {
	public static void main(String[] args) {
		String s1= "HelloWorld123";
//	boolean isEmpty():判断字符串是否为空
		System.out.println( s1.isEmpty());/*false*/
//	boolean equals(Object obj):将此字符串的内容与指定的对象比较,区分大小写
		String s2 =  "abc";
		System.out.println(s1.equals(s2));/*false*/
//boolean equalsIgnoreCase(String str):
//将此 String 与另一个 String 比较,忽略大小写。
		String s3 = new String(new char[] {'1','2','3'});
		System.out.println(s1.equalsIgnoreCase(s3));/* false */
//		boolean contains(String str):判断字符串中是否包含方法传入的字符串。
		System.out.println(s1.contains("Hello"));/* true */
//boolean startsWith(String str):判断字符串是否以某个指定的字符串开头。		
//boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾
		System.out.println(s1.startsWith("h"));/* false */
		System.out.println(s1.endsWith("3"));/*true*/		
	}	
}
import java.util.Arrays;
public class practice7 {
	public static void main(String[] args) {
		String s1= "Aabc123456";
//		 byte[] getBytes() :将字符串转化为字节数组。
		System.out.println(Arrays.toString(s1.getBytes()));
//       char[] toCharArray(): 将字符串转化为字符数组。
		char[] ch = s1.toCharArray();
		for (char c : ch) {
			System.out.print("  "+c);
		}
		System.out.println("");
//static String valueOf(char[] chs): 返回 char 数组参数的字符串表示形式。
		System.out.println(s1.valueOf(false));
		System.out.println(s1.valueOf(5));
//String toLowerCase() :将此 String 中的所有字符都转换为小写。
//String toUpperCase() :将此 String 中的所有字符都转换为大写
		System.out.println(s1.toLowerCase());
		System.out.println(s1.toUpperCase());
//	String concat(String str): 将指定字符串连接到此字符串的结尾。
		System.out.println(s1.concat("我爱你"));
		System.out.println();
	}
}
public class practice{
	public static void main(String[] args) {
//		 String replace(char old,char new) :替换功能。
//		String replace(String old,String new) :替换功能。
		String s1= "HelloWorld";
		System.out.println(s1.replace('e', 'P'));
		System.out.println(s1.replace('o', 's'));
		System.out.println(s1.replaceAll("Hello", "replacement"));
//	String trim():去除字符串两空格。	
		String s2=  " "+"我爱中国"+"   ";
		System.out.println(s2);
		System.out.println(s2.trim());
	}
}
总结:利用String可进行字符串的修改、分割、获取、替换等功能;

2.StringBuffe:

  • StringBuffer类概述
    线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意 时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。

  • 构造方法
    (1) StringBuffer() :构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。
    (2)StringBuffer(CharSequence seq):构造一个字符串缓冲区,它包含与指定CharSequence 相同的字符。
    (3)StringBuffer(int capacity) :构造一个不带字符,但具有指定初始容量的字符串缓冲区。
    (4)StringBuffer(String str):构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。

/*
 *  增 :
	StringBuffer append(String str) 
	StringBuffer insert(int offset, String str)
	删 :
	StringBuffer deleteCharAt(int index) 
	StringBuffer delete(int start, int end) 
	改:
	public StringBuffer replace(int start,int end,String str)
	其他:
	public StringBuffer reverse() 
	public String substring(int start) 注意:截取操作不会影响到StringBuffer本身
	public String substring(int start,int end)
 */
public class StringBufferDemo02 {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer();
//		StringBuffer sb2 = sb.append("Hello");
//		System.out.println(sb); // 
//		System.out.println(sb2); // hello
		sb.append("Hello");
		System.out.println(sb);
		
		// 链式调用
		sb.append('c').append("world").append(new Object());
		System.out.println(sb);
		
//		StringBuffer insert(int index, String str)
//		[email protected]
		sb.insert(11, "Student");
		System.out.println(sb);
		
//		StringBuffer deleteCharAt(int index) 
		sb.deleteCharAt(5);
		System.out.println(sb);
//		StringBuffer delete(int start, int end) 
		sb.delete(5, 10);
		System.out.println(sb);
		
//		public StringBuffer replace(int start,int end,String str)
		sb.replace(5, 12, "World");
		System.out.println(sb);
		
//		public StringBuffer reverse() 
//		sb.reverse();
//		System.out.println(sb);
		
//		public String substring(int start);
		String result = sb.substring(10);
		System.out.println(sb);
		System.out.println(result);
//		public String substring(int start,int end)
		System.out.println("sb:" + sb);
		String result2 = sb.substring(0, 5);
		System.out.println(result2);
		System.out.println(sb);				
	}
}

3.StringBuffer:

与StringBuffer基本类似,下面通过比较三者的关系来总结:

  • String,StringBuffer,StringBuilder三者的区别。
    String的特点: 线程不安全, 一旦在方法区创建就不会被更改,可以给多个引用共享,在做大量字符串拼接的时候效率低
    StringBuffer,StringBuilder 可以改变变字符串的长度和内容,是一个字符串缓冲区,在做大量字符串拼接的时候不会开辟新的空间

  • StringBuffer,StringBuilder的区别
    StringBuffer线程安全的,效率低
    StringBuilder线程不安全的,效率高

相关标签: String StringBuffer