版权声明: https://blog.csdn.net/qq_40794602/article/details/86912984
String字符串的转换功能:
public static void main(String[] args) {
//String类的转换功能
System.out.println("========byte[] getBytes():把字符串转换为字节数组========");
String s1 = "520java";
//NSDate = byte[]
byte[] bytes = s1.getBytes();
for(int i = 0; i < bytes.length;i++){
System.out.println(bytes[i]);
}
System.out.println("=========char[] toCharArray():把字符串转换为字符数组========");
String s2 = "java";
char[] chs = s2.toCharArray();
for(int i = 0; i < chs.length;i++){
System.out.println(chs[i]);
}
System.out.println("=======static String valueOf(char[] chs):把字符数组转成字符串========");
char[] chs2 = {'L','O','V','E'};
String s3 = String.valueOf(chs2);
System.out.println("s3=" + s3);
System.out.println("=======static String valueOf(int i):把int类型的数据转成字符串========");
int a = 97;
String s4 = String.valueOf(a);
System.out.println(s4);
// 注意:String类的valueOf方法可以把任意类型的数据转成字符串
System.out.println("========String toLowerCase():把字符串转成小写=====");
String s5 = "HELLO,HOW ARE YOU!";
s5 = s5.toLowerCase();
System.out.println("s5:" + s5);
System.out.println("=======String toUpperCase():把字符串转成大写=====");
String s6 = "hi,麻辣鸡斯";
s6 = s6.toUpperCase();
System.out.println("s6:" + s6);
// String concat(String str):把字符串拼接,且只能拼接字符串。+ 方式拼接字符串时,可以是任意类型
System.out.println("=======String concat(String str):把字符串拼接,且只能拼接字符串======");
String s7 = "When";
String s8 = " you go home?";
String s9 = s7.concat(s8);
//String s9 = s7 + s8 + 98;
System.out.println("s9:" + s9);
}
String字符串的其它功能:
public static void main(String[] args) {
// TODO Auto-generated method stub
//String类的其它功能
// public String replace(char oldChar, char newChar)//替换字符
String s1 = "hello";
s1 = s1.replace('l', 'y');
System.out.println("s1:" + s1);
// public String replace(CharSequence target, CharSequence replacement) //替换字符串
//CharSequence,接口,字符系列
//String是CharSequence的实现类
String s2 = "I Love You!";
s2 = s2.replace("Love", "Hate");
System.out.println("s2:" + s2);
// String trim();//去除前后空格
String s3 = " Java Gosling ";
System.out.println("s3:" + s3);
s3 = s3.trim();
System.out.println("s3:" + s3);
// public int compareTo(String anotherString) //比较字符串的大小
String s4 = "abc";
String s5 = "abc";
int result = s4.compareTo(s5);
System.out.println("s4 pk s5 = " + result);
// public int compareToIgnoreCase(String str) //比较
String s6 = "AbB";
String s7 = "aBc";
System.out.println("s6 pk s7 = " + s6.compareToIgnoreCase(s7));
}
StringBuffer类概述:
- StringBuffer线程安全的可变字符序列
- StringBuffer内部实现是字符数组
- StringBuffer和String的区别【面试题】:String是一个不可变的字符序列 ;StringBuffer是一个可变的字符序列;StringBuffer线程安全,可以加锁
StringBuffer类的构造方法:
- public StringBuffer():【开发中常用此构造方法,构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。
- public StringBuffer(int capacity) :构造一个不带字符,但具有指定初始容量的字符串缓冲区。
- public StringBuffer(CharSequence seq): 构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符。
- public StringBuffer(String str):构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
- EG:
public static void main(String[] args) { /*构造方法1.StringBuffer类的构造方法 public StringBuffer():【开发中常用此构造方法】 构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。*/ StringBuffer sb1 = new StringBuffer(); System.out.println("sb1的初始容量:" +sb1.capacity());//内部字符数组的初始容量 System.out.println(sb1.length());//字符串的长度 /*构造方法2.public StringBuffer(int capacity) : 构造一个不带字符,但具有指定初始容量的字符串缓冲区。*/ StringBuffer sb2 = new StringBuffer(24); System.out.println("sb2的初始容量:" + sb2.capacity()); /*构造方法3.public StringBuffer(CharSequence seq): 构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符。 */ StringBuffer sb3 = new StringBuffer("sb,你好吗?"); System.out.println("sb3的初始容量:" + sb3.capacity()); System.out.println("sb3:" + sb3); /*构造方法4.public StringBuffer(String str): * 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。 */ String s = "sb,你好吗?"; StringBuffer sb4 = new StringBuffer(s); System.out.println("sb4的初始容量:" + sb4.capacity()); System.out.println("sb4:" + sb4); }
StringBuffer的添加功能:
- public StringBuffer append(String str): 可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
- public StringBuffer insert(int offset,String str): 在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
StringBuffer的删除功能:
- public StringBuffer deleteCharAt(int index): 删除指定位置的字符,并返回本身
- public StringBuffer delete(int start,int end): 删除从指定位置开始指定位置结束的内容,并返回本身
StringBuffer的替换和反转功能:
- StringBuffer的替换功能 【public StringBuffer replace(int start,int end,String str)】:从start开始到end用str替换
- StringBuffer的反转功能【public StringBuffer reverse()】:字符串反转
StringBuffer的截取功能及注意事项:
- public String substring(int start):从指定位置截取到末尾
- public String substring(int start,int end):截取从指定位置开始到结束位置,包括开始位置,不包括结束位置
- 注意事项 :返回值类型不再是StringBuffer本身
StringBuffer和String的相互转换:
public static void main(String[] args) {
//StringBuffer和String的相互转换
/* 1.String –> StringBuffer
1.1通过构造方法
1.2通过append()方法 */
String s = "Hello,Gosling,Thx";
//1.1通过构造方法
StringBuffer sb1 = new StringBuffer(s);
System.out.println("sb1:" + sb1);
//1.2通过append()方法
StringBuffer sb2 = new StringBuffer();
sb2.append(s);
System.out.println("sb2:" + sb2);
/* 2.StringBuffer -> String
2.1通过构造方法
2.2通过toString()方法
2.3通过subString(start); */
StringBuffer sb = new StringBuffer("Gosling,Where Are You!");
//2.1通过构造方法
String s1 = new String(sb);
//2.2通过toString()方法
String s2 = sb.toString();//这种最方便
//2.3通过subString(start);
String s3 = sb.substring(0);
System.out.println("s1:" + s1);
System.out.println("s2:" + s2);
System.out.println("s3:" + s3);
}
StringBuffer和StringBuilder的区别:
- 通过查看API了解下StringBuilder,与StringBuffer对比,方法基本一样
- StringBuffer是jdk1.0版本的,是线程安全的,效率低
- StringBuilder是jdk1.5版本的,是线程不安全的,效率高
String 和StringBuffer,StringBuilder的区别:
- String是一个不可变的字符序列
- StringBuffer,StringBuilder是可变的字符序列