B站 韩顺平 老师课程的笔记
StringBuffer and StringBuilder
这两个类在Java编程算法中比较常用
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuffer的主要方法和StringBuilder的几乎一样,注意考虑何时使用何方法即可
在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。
1 2 3 4 5 6 7 8 9 10 11 12 13
| 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 类。
StringBuilder的重要方法的代码尝试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
| package com.String_Class;
public class StringBuilderStudy { public static void main(String[] args) {
java.lang.StringBuilder sb1 = new StringBuilder(); java.lang.StringBuilder sb2 = new StringBuilder(10);
sb1.append("zhang"); sb1.append(" "); sb1.append("yon"); sb1.append(" "); char[] chars = {'r','u','i'}; sb1.append(chars); System.out.println(sb1); System.out.println(sb1.capacity()); System.out.println(sb1.charAt(0)); String testString1 = "yon"; System.out.println(sb1.indexOf(testString1)); System.out.println(sb1.indexOf(testString1,5)); sb1.deleteCharAt(3); System.out.println(sb1);
sb1.insert(3,'n'); System.out.println(sb1); sb1.delete(8,10); System.out.println(sb1);
System.out.println(sb1.capacity()); System.out.println(sb1.length()); sb1.trimToSize(); System.out.println(sb1.capacity()); System.out.println(sb1.length());
sb1.setCharAt(0,'f');
String testString2 = sb1.substring(4); String testString3 = sb1.substring(4,8); System.out.println(testString2); System.out.println(testString3);
sb1.reverse(); System.out.println(sb1); } }
|