1月8日云栖精选夜读:如何像阿里巴巴
752 2023-04-03 03:06:13
""
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("") / startsWith9. 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 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[]{});
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 str1 = "123"; char[] chs = str1.toCharArray(); for (int i = 0; i < str1.length(); i++) { System.out.println(chs[i]); }
char[] chs2 = new char[]{'h', 'e', 'l', 'l', 'o'}; String str2 = new String(chs2); System.out.println(str2);
String str1 = "123"; byte[] bytes = str1.getBytes(); System.out.println(Arrays.toString(bytes));
String str2 = new String(bytes); System.out.println(str2);
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);