String类与StringBuffer类
API指的是应用程序接口。本文章涉及的Java API指的是JDK中提供的各种功能的java类。
String类使用
看代码
public class Example{
public static void main(String[] args){
String str1 = new String; //创建一个空的字符串
String str2 = new String("abcd"); //创建一个内容为abcd的字符串
char[] charArray = new char[]{'d','f','g'};//创建一个内容为字符数组的字符串
}
}
字符串的基本操作
public class test {
public static void main(String[] args){
String s = "dfasdgfasdf";//声明字符串
System.out.println("字符的长度为:"+ s.length());
System.out.println("字符串中第一个字符:"+ s.charAt(0));
System.out.println("字符g第一次出现的位置" + s.indexOf('g'));
System.out.println("字符g最后出现的位置" + s.lastIndexOf('f'));
System.out.println("子字符串第一次出现的位置" + s.indexOf("gf"));
System.out.println("子字符串最后出现的位置" + s.lastIndexOf("df"));
}
}
字符的长度为:11
字符串中第一个字符:d
字符g第一次出现的位置5
字符g最后出现的位置10
子字符串第一次出现的位置5
子字符串最后出现的位置9
字符串转换操作
字符串转换成数组形式,字符串中的字符大小写转换
public class test {
public static void main(String[] args){
String str = "abcde";
System.out.println("将字符串转换成字符数组后的效果:");
char[] charArray = str.toCharArray(); //字符串转换成字符数组
for (int i =0;i<charArray.length;i++){
if (i != charArray.length -1){
//如果不是数组的最后一个元素,在元素后面加逗号
System.out.print(charArray[i] + ",");
}
else{
// 数组的最后一个元素的后面不加逗号
System.out.println(charArray[i]);
}
}
System.out.println("将字符串转换成大写之后的结果:"+ str.toUpperCase());
System.out.println("将int值转换成为String类型之后的结果"+ String.valueOf(12));
}
}
将字符串转换成字符数组后的效果:
a,b,c,d,e
将字符串转换成大写之后的结果:ABCDE
将int值转换成为String类型之后的结果12
字符串的替换与去空
可以使用String类的replace(参数1,参数2)。参数1:需要被替换的字符串,参数2:将要替换的字符串
trim():进行字符串的替换和去除空格操作
字符串的判断操作
操作字符串时需要对对其进行判断
public class test {
public static void main(String[] args) {
String s1 = "String";
String s2 = "Str";
System.out.println("判断是否以字符串Str开头:" + s1.startsWith("Str"));
System.out.println("判断是否以字符串ng开头:" + s1.endsWith("ng") );
System.out.println("判断是否包含字符串tri:"+ s1.contains("tri"));
System.out.println("判断字符串是否为空:"+ s1.isEmpty());
System.out.println("判断两个字符串是否相等:"+ s1.equals(s2));
}
}
判断是否以字符串Str开头:true
判断是否以字符串ng开头:true
判断是否包含字符串tri:true
判断字符串是否为空:false
判断两个字符串是否相等:false
字符串的截取和分割
字符串的截取和分割操作提供了两个方法
String str= "羽毛球-篮球-兵乓求";
str.substring(4): //从第五个字符截取到末尾的结果
str.substring(4,6);//从第五个字符截取到第六个字符的结果
String[] strArray = str.split("-"); //将字符串按“-”分割为字符串数组
StringBuffer
由于字符串时常量,因此一旦创建,其内容和长度是不可改变的。String和StringBuffer类最大的区别在于它的内容和长度都是可以改变的
方法声明 | 功能描述 |
---|---|
StringBuffer append(char c) | 添加参数到StringBuffer对象中 |
StringBuffer insert(int offset,String str) | 将字符串中的offset位置插入字符串str |
StringBuffer deleteCharAt(int index) | 移除此序列指定位置的字符 |
StringBuffer delete(int start,int end) | 删除StringBuffer对象中指定范围的字符或字符串序列 |
StringBuffer repace(int start,int end,String s) | 在StringBuff对象中替换指定的字符或字符串序列 |
void setCharAt (int index,char ch) | 修改指定位置index处的字符串 |
String toString() | 返回StringBuffer缓冲区中的字符串 |
StringBuffer reverse() | 将此字符序列用其反转形式取代 |
注意:
1:
String类表示的字符串是常量,一旦创建后,内容和长度都是无法改变的。
而StringBuffer 表示字符容器,其内容和长度可以随时修改。
如果该字符串仅用于表示数据类型,则使用String类即可。
但是如果需要对字符串中的字符进行增删查改操作,则使用StringBuffer类
2:
String类覆盖了Object类的equals()方法,而StringBuffer类没有覆盖Object类的equals()方法。
3:
String类对象可以用操作符“+”进行连接,而StringBuffer类对象之间不能。