Java字符串获取及其他功能、可变字符串(StringBuffer)常用构造器及其方法 Java第十天(二)

本文主要介绍了Java中的字符串获取功能和其他相关操作,并深入探讨了可变字符串StringBuffer,包括其与String的区别、线程安全性以及常用的构造方法和方法。

字符串

 字符串获取功能

返回值类型 		方法名 			  参数列表
String 		substring(int beginIndex, int endIndex) 
返回一个字符串,该字符串是此字符串的子字符串。(包含开始索引本身,)
(截取从指定索开始和结束索引之间的字符串,并组成一个新的字符串)
 例:
 		String str = new String("ABCDEFGHI");
		System.out.println(str.substring(2,5));
输出结果:
CDE
---------------------------------------------------------------------------------
byte[] 		getBytes() 
使用平台的默认字符集将此 String编码为字节序列,将结果存储到新的字节数组中。  
 例:
 	public static void main(String[] args) {
		String str = new String("ABCDEFGHI");
		byte[] be = str.getBytes();
		print(be);
	}
	public static void print(byte[] be) {
		for(int i = 0;i<be.length;i++) {
			System.out.print(be[i]+" ");
		}
	}
输出结果:
65 66 67 68 69 70 71 72 73 
---------------------------------------------------------------------------------
char[] 		toCharArray() 
将此字符串转换为新的字符数组。 
 例:
 	public static void main(String[] args) {
		String str = new String("ABCDEFGHI");
		char[] ch = str.toCharArray();
		print(ch);
	}
	public static void print(char[] be) {
		for(int i = 0;i<be.length;i++) {
			System.out.print(be[i]+" ");
		}
	}
 
输出结果:
A B C D E F G H I 
---------------------------------------------------------------------------------
static String 		valueOf(boolean b) 
返回 boolean参数的字符串 boolean形式。(由于是静态方法,所以调用语法:类名.静态方法名)
(将布尔类型的参数转换为字符串形式)
 例:
 		System.out.println(String.valueOf(false));
输出结果:
false
---------------------------------------------------------------------------------
static String 		valueOf(char c) 
返回 char参数的字符串 char形式。  
 例:
 		System.out.println(String.valueOf('B'));
输出结果:
B
---------------------------------------------------------------------------------
static String 		valueOf(char[] data) 
返回 char数组参数的字符串 char形式。  
 例:
 		char[] ch = {'B','D','E','R'};
		System.out.println(String.valueOf(ch));
输出结果:
BDER
---------------------------------------------------------------------------------
static String		 valueOf(char[] data, int offset, int count) 
返回 char数组参数的特定子阵列的字符串 char形式。  
 例:
 		char[] ch = {'B','D','E','R'};
		System.out.println(String.valueOf(ch,1,3));
输出结果:
DER
---------------------------------------------------------------------------------
static String 		valueOf(double d) 
返回 double参数的字符串 double形式。  
 例:
 		System.out.println(String.valueOf(3.08));
输出结果:
3.08
---------------------------------------------------------------------------------
static String 		valueOf(float f) 
返回 float参数的字符串 float形式 
 例:
 		float f = 13.8f;
		System.out.println(String.valueOf(f));
输出结果:
13.8
---------------------------------------------------------------------------------
static String 		valueOf(int i) 
返回 int参数的字符串 int形式。  
 例:
 		int i = 10242048;
		System.out.println(String.valueOf(i));
输出结果:
10242048
---------------------------------------------------------------------------------
static String 		valueOf(long l) 
返回 long参数的字符串 long形式。  
 例:
 		long l = 1008611;
		System.out.println(String.valueOf(l));
输出结果:
1008611
---------------------------------------------------------------------------------
String 		toUpperCase() 
将所有在此字符 String使用默认语言环境的规则大写。  
 例:
 		String str = new String("abcdefg");
		System.out.println(str.toUpperCase());
输出结果:
ABCDEFG
---------------------------------------------------------------------------------
String 		toUpperCase(Locale locale) 
将所有在此字符 String使用给定的规则,大写 Locale 。  
 例:
 		String str = new String("abcdefg");
		System.out.println(str.toUpperCase(Locale.SIMPLIFIED_CHINESE));
输出结果:
ABCDEFG
---------------------------------------------------------------------------------
String 		toLowerCase() 
将所有在此字符 String使用默认语言环境的规则,以小写。  
 例:
 		String str = new String("ABCDEFG");
		System.out.println(str.toLowerCase());
输出结果:
abcdefg
---------------------------------------------------------------------------------
String 		toLowerCase(Locale locale) 
将所有在此字符 String ,以降低使用给定的规则情况下 Locale 。  
 例:
 		String str = new String("ABCDEFG");
		System.out.println(str.toLowerCase(Locale.SIMPLIFIED_CHINESE));
输出结果:
abcdefg
---------------------------------------------------------------------------------
String 		concat(String str) 
将指定的字符串连接到该字符串的末尾。  
 例:
 		String str = new String("ABCDEFG");
		System.out.println(str.concat("拼接成功!"));
输出结果:
ABCDEFG拼接成功!
---------------------------------------------------------------------------------

 其他功能

返回值类型		方法名    参数列表
String[] 		split(String regex)  
根据正则表达式的匹配拆分此字符串(^*符号主要转义才能使用)
 例:
 	public static void main(String[] args) {
 	//需要转义的用法
		String str = new String("A*B*C*D*E*F*G");
		String[] sg = str.split("\\*");
	//正常使用时的用法
//		String str = new String("A@B@C@D@E@F@G");
//		String[] sg = str.split("@");
		print(sg);
	}
	public static void print(String[] be) {
		for(int i = 0;i<be.length;i++) {
			System.out.print(be[i]+" ");
		}
	}
}
输出结果:
A B C D E F G 
---------------------------------------------------------------------------------
String 		replace(char oldChar, char newChar) 
返回从替换所有出现的导致一个字符串 oldChar在此字符串 newChar 。 
例:
		String str = new String("ABCDEFG");
		System.out.println(str.replace('A', 'V'));
输出结果:
VBCDEFG
---------------------------------------------------------------------------------
String 		replace(CharSequence target, CharSequence replacement) 
将与字面目标序列匹配的字符串的每个子字符串替换为指定的字面替换序列。 
例:
		String str = new String("ABCDEFG");
		System.out.println(str.replace("A", "测试替换成功!"));
输出结果:
测试替换成功!BCDEFG
---------------------------------------------------------------------------------
String 		trim() 
返回一个字符串,其值为此字符串,并删除任何前导和尾随空格。  
例:
		String str = new String("    ABCDEFG    ");
		System.out.println(str);
		System.out.println(str.trim());
输出结果:
    ABCDEFG    
ABCDEFG
---------------------------------------------------------------------------------
int 		compareTo(String anotherString) 
按字典顺序比较两个字符串。  (返回值为调用字符串减去括号内被比较字符串的ASCII码值)
(两个字符串相比较,从第一个字符开始比较相同索引的字符,首字符比较出的结果为最终结果,
若首字符相等,则去比较下一个相同索引的字符)
例:
		String str = new String("A");
		System.out.println(str.compareTo("I"));
输出结果:
-8
---------------------------------------------------------------------------------

可变字符串(StringBuffer)

  StringBuffer:字符串缓冲区
  与String的区别:
 ①String一旦被创建后,其值不能被改变,如果参与了操作,引用发生了变化,不是在原有的字符串上操作,而是产生了一个新的字符串。
 ②StringBuffer是线程安全的可变字符串,不会产生新的字符串。

 常用构造方法

StringBuffer() 
构造一个没有字符的字符串缓冲区,初始容量为16个字符。
例:
		StringBuffer str = new StringBuffer();
		System.out.println(str.capacity());
输出结果:
16
---------------------------------------------------------------------------------
StringBuffer(int capacity) 
构造一个没有字符的字符串缓冲区和指定的初始容量。
例:
		StringBuffer str = new StringBuffer(50);
		System.out.println(str.capacity());
输出结果:
50
---------------------------------------------------------------------------------
StringBuffer(String str) 
构造一个初始化为指定字符串内容的字符串缓冲区。 
例:
		StringBuffer str = new StringBuffer("ABCDE");
		System.out.println(str);
输出结果:
ABCDE
---------------------------------------------------------------------------------

 常用方法

返回值类型		方法名		参数列表
StringBuffer 	append(String str) 
将指定的字符串附加到此字符序列。 
例:
		StringBuffer str = new StringBuffer("ACDE");
		System.out.println(str.append("IUYT"));
输出结果:
ACDEIUYT

(此外还有同样返回值类型的append(boolean b)append(char c)append(char[] str)append(char[] str, int offset, int len)append(double d)append(float f)append(int i)append(long lng)等方法,不一一赘述)
---------------------------------------------------------------------------------
int 		length() 
返回可变字符串的长度(字符数)。  
例:
		StringBuffer str = new StringBuffer("ACDE");
		System.out.println(str.length());
输出结果:
4
---------------------------------------------------------------------------------
int 		capacity() 
返回当前可变字符串的容量。(默认容量为16,会自动扩充容量)
例:
		StringBuffer str = new StringBuffer("ACDE");
		System.out.println(str.capacity());
输出结果:
20
---------------------------------------------------------------------------------
StringBuffer 		insert(int offset, String str) 
将字符串插入到此字符序列中。 (注意数组越界问题)
例:
		StringBuffer str = new StringBuffer("ABCDE");
		System.out.println(str.insert(2, "插入成功!"));
输出结果:
AB插入成功!CDE

(此外还有同样返回值类型的insert(int offset, boolean b)insert(int offset, char c)insert(int offset, char[] str)insert(int index, char[] str, int offset, int len)insert(int offset, double d)insert(int offset, float f)insert(int offset, int i)insert(int offset, long l)等方法,不一一赘述 )
---------------------------------------------------------------------------------
StringBuffer 		delete(int start, int end) 
删除此序列的子字符串中的字符。(包含起始索引,不包含结束索引)
例:
		StringBuffer str = new StringBuffer("ABCDE");
		System.out.println(str.delete(1, 4));
输出结果:
AE
---------------------------------------------------------------------------------
StringBuffer deleteCharAt(int index) 
删除 char在这个序列中的指定位置。  
例:
		StringBuffer str = new StringBuffer("ABCDE");
		System.out.println(str.deleteCharAt(2));
输出结果:
ABDE
---------------------------------------------------------------------------------
StringBuffer 		replace(int start, int end, String str) 
用指定的String中的字符替换此序列的子字符串中的 String。
(若替换字符串长度>尾索引-始索引,不会覆盖,作拼接)
例:
		StringBuffer str = new StringBuffer("ABCDE");
		System.out.println(str.replace(1, 3, "替换成功!"));
输出结果:
A替换成功!DE
---------------------------------------------------------------------------------
StringBuffer 		reverse() 
导致该字符序列被序列的相反代替。 
例:
		StringBuffer str = new StringBuffer("ABCDE");
		System.out.println(str.reverse());
输出结果:
EDCBA
---------------------------------------------------------------------------------
int 		lastIndexOf(String str) 
返回指定子字符串最右边出现的字符串内的索引。(获得倒数第一次出现字符串的索引) 
例:
		StringBuffer str = new StringBuffer("ABCDEFGHI");
		System.out.println(str.lastIndexOf("G"));
输出结果:
6
---------------------------------------------------------------------------------
int 		lastIndexOf(String str, int fromIndex) 
返回指定子字符串最后一次出现的字符串中的索引。(注意:这里是从字符串尾部作为第一位数起)  
(返回值为-1时,目标字符不存在)
例:
		StringBuffer str = new StringBuffer("ABCDEFGHIhghoih");
		System.out.println(str.lastIndexOf("G",13));
输出结果:
6
---------------------------------------------------------------------------------
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值