001Java常用类之String

发布于 2022年 04月 03日 01:20

Java常用类

String

  • 使用双引号""
  • string是final类,代表不可变的字符序列。 不支持 str + ""
  • 实现了serializable接口,字符串支持可序列化。
  • 实现了comparable接口,字符串支持比较大小。

string常用方法

1. 长度: string1.length()
2. 连接: string1.concat(string2)
3. string1.charAt(0)
3. string1.isEmpty()
4. string1.toLowerCase()
5. 去掉首尾空格: string1.trim()
6. 排序: string1.compareTo(string2)
7. 截肢: string2 = string1.substring(begin, end)
8. string2 = string1.endsWith("") / startsWith
9. string1.contains(string2)
10. string1.indexOf("xx")
11. string1.replace(old, new)
12. string1.replaceAll(regex, replacement) 
13. boolean rlt = string1.matches(regex)
14. 切分 String[] strs = string1.split(regex)
	for(int i = 0; < strs.length(); ++){
    	System.out.println(strs[i]);
    }

string对象

// 通过字面量直接赋值的方式(字面量就是""里面的东西,比如String a = "laochou",那么laochou就是字面量。)
String a = "";// 通过new的方式(但是注意参数不同)// 什么都不传
String b = new String();// 传空字符串String c = new String("");// 传字符数组
String d = new String(new char[]{});// 传byte数组
String e = new String(new byte[]{});

string 与基本数据类型和包装类之间的转换

1. string to int基本数据类型和包装类 (使用包装类的静态方法 parseXxx(str))
String str = "123";
int num = Integer.parseInt(str);
2. 
a. 基本数据类型和包装类 to string (调用string重载的valueOf(Xxx),也是静态方法)
String str = String.valueOf(num);
b. 使用连接符
String str = num + "";
string 与 char[] char型数组 转换 (调用String的toCharArray方法)
        String str1 = "123";
        char[] chs = str1.toCharArray();
        for (int i = 0; i < str1.length(); i++) {
            System.out.println(chs[i]);
        }
char[] char型数组 string 型数组 转换 (调用string的构造器)
        char[] chs2 = new char[]{'h', 'e', 'l', 'l', 'o'};
        String str2 = new String(chs2);
        System.out.println(str2);
string 与 byte[] 字节数组 转换 (调用String的getBytes方法)
        String str1 = "123";
        byte[] bytes = str1.getBytes();
        System.out.println(Arrays.toString(bytes));
string 与 byte[] 字节数组 转换 (调用String的getBytes方法)
        String str2 = new String(bytes);
        System.out.println(str2);

创建格式化字符串

Java StringBuffer 和 StringBuilder 类

String: 不可变序列

StringBuffer: 可变;线程安全;效率低

StringBuilder: 可变;线程不安全;效率高

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

public class RunoobTest{
    public static void main(String args[]){
        StringBuilder sb = new StringBuilder(10);
        sb.append("Runoob..");
        System.out.println(sb);  
        sb.append("!");
        System.out.println(sb); 
        sb.insert(8, "Java");
        System.out.println(sb); 
        sb.delete(5,8);
        System.out.println(sb);  
    }
}
        StringBuffer sbr1 = new StringBuffer("abc");
        sbr1.setCharAt(0, 'm');
        System.out.println(sbr1);

推荐文章