Apabila mengubah suai rentetan, anda perlu menggunakan kelas StringBuffer dan StringBuilder. Berbeza daripada kelas String, objek kelas StringBuffer dan StringBuilder boleh diubah suai beberapa kali tanpa menghasilkan objek baru yang tidak digunakan .
StringBuffer: Apabila menggunakan kelas StringBuffer, objek StringBuffer itu sendiri akan dikendalikan setiap kali dan bukannya menjana objek baharu, jadi jika anda perlu Adalah disyorkan untuk menggunakan StringBuffer untuk mengubah suai rentetan.
StringBuilder: Kelas StringBuilder telah dicadangkan dalam Java 5. Perbezaan terbesar antaranya dan StringBuffer ialah kaedah StringBuilder tidak selamat untuk benang (tidak boleh diakses secara serentak). Memandangkan StringBuilder mempunyai kelebihan kelajuan berbanding StringBuffer, adalah disyorkan untuk menggunakan kelas StringBuilder dalam kebanyakan kes.
Contoh penggunaan 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); } } // 实例编译运行结果如下: // Runoob.. // Runoob..! // Runoob..Java! // RunooJava!
Walau bagaimanapun, apabila aplikasi memerlukan keselamatan benang, kelas StringBuffer mesti digunakan. Contoh penggunaan StringBuffer:
public class Test { public static void main(String args[]) { StringBuffer sBuffer = new StringBuffer("稀土掘金:"); sBuffer.append("www"); sBuffer.append(".juejin"); sBuffer.append(".cn"); System.out.println(sBuffer); } } // 实例编译运行结果如下: // 稀土掘金:www.juejin.cn
Kaedah StringBuffer
Kaedah utama yang disokong oleh kelas StringBuffer:
序号 | 方法描述 |
---|---|
1 | public StringBuffer append(String s),将指定的字符串追加到此字符序列 |
2 | public StringBuffer reverse(), 将此字符序列用其反转形式取代 |
3 | public delete(int start, int end), 移除此序列的子字符串中的字符 |
4 | public insert(int offset, int i), 将 int 参数的字符串表示形式插入此序列中 |
5 | insert(int offset, String str) , 将 str 参数的字符串插入此序列中 |
6 | replace(int start, int end, String str) , 使用给定 String 中的字符替换此序列的子字符串中的字符 |
Kaedah biasa kelas StringBuffer yang lain:
序号 | 方法描述 |
---|---|
1 | int capacity(),返回当前容量 |
2 | char charAt(int index),返回此序列中指定索引处的 char 值 |
3 | void ensureCapacity(int minimumCapacity),确保容量至少等于指定的最小值 |
4 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin),将字符从此序列复制到目标字符数组 dst |
5 | int indexOf(String str),返回第一次出现的指定子字符串在该字符串中的索引 |
6 | int indexOf(String str, int fromIndex),返从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引 |
7 | int lastIndexOf(String str),返回指定子字符串在此字符串中最后一次出现处的索引 |
8 | int lastIndexOf(String str, int fromIndex),返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索 |
9 | int length(),返回长度(字符数) |
10 | void setCharAt(int index, char ch),将给定索引处的字符设置为 ch 参数的值 |
11 | void setLength(int newLength),设置字符序列的长度 |
12 | CharSequence subSequence(int start, int end),返回一个新的字符序列,该字符序列是此序列的子序列 |
13 | String substring(int start),返回一个新的 String,它包含此字符序列当前所包含的字符子序列 |
14 | String substring(int start, int end),返回一个新的 String,它包含此序列当前所包含的字符子序列 |
15 | String toString(),返回此序列中数据的字符串表示形式 |
Instance kaedah: color{red}{Instance kaedah:}Instance kaedah:
instance kaedah reverse():
public synchronized StringBuffer reverse()
Penerangan :
Ganti urutan aksara ini dengan bentuk terbaliknya.
Parameter:
Tiada
Nilai pulangan: Bentuk terbalik bagi urutan aksara
.
rreeeeAtas ialah kandungan terperinci Cara menggunakan StringBuffer dan StringBuilder di Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!