
- Java.lang 包類
- Java.lang - 首頁
- Java.lang - Boolean
- Java.lang - Byte
- Java.lang - Character
- Java.lang - Character.Subset
- Java.lang - Character.UnicodeBlock
- Java.lang - Class
- Java.lang - ClassLoader
- Java.lang - Compiler
- Java.lang - Double
- Java.lang - Enum
- Java.lang - Float
- Java.lang - InheritableThreadLocal
- Java.lang - Integer
- Java.lang - Long
- Java.lang - Math
- Java.lang - Number
- Java.lang - Object
- Java.lang - Package
- Java.lang - Process
- Java.lang - ProcessBuilder
- Java.lang - Runtime
- Java.lang - RuntimePermission
- Java.lang - SecurityManager
- Java.lang - Short
- Java.lang - StackTraceElement
- Java.lang - StrictMath
- Java.lang - String
- Java.lang - StringBuffer
- Java.lang - StringBuilder
- Java.lang - System
- Java.lang - Thread
- Java.lang - ThreadGroup
- Java.lang - ThreadLocal
- Java.lang - Throwable
- Java.lang - Void
- Java.lang 包其他
- Java.lang - 介面
- Java.lang - 錯誤
- Java.lang - 異常
- Java.lang 包有用資源
- Java.lang - 有用資源
- Java.lang - 討論
Java StringBuilder capacity() 方法
Java 的 StringBuilder capacity() 方法返回當前容量。容量定義為可用於新插入字元的儲存量,超過此容量將發生分配。
簡單來說,空 StringBuilder 的預設儲存容量為 16 個字元。因此,當某些字元已插入時,該方法將返回現有字元數 + 16 作為輸出。因此,它超出了分配限制。
容量與字串的長度不同,因為長度僅計算字串中存在的字元數,而容量則計算 StringBuilder 目前可以容納的最大字元數。
語法
以下是 Java StringBuilder capacity() 方法的語法
public int capacity()
引數
此方法不接受任何引數。
返回值
此方法返回當前容量。
示例:獲取 StringBuilder 的容量
如果我們在任何 StringBuilder 物件上呼叫該方法,返回值將是當前容量。
以下示例演示了 Java StringBuilder capacity() 方法的使用。
package com.tutorialspoint; public class StringBuilderDemo { public static void main(String[] args) { StringBuilder buff = new StringBuilder("TutorialsPoint"); // returns the current capacity of the String buffer i.e. 16 + 14 System.out.println("capacity = " + buff.capacity()); buff = new StringBuilder(" "); // returns the current capacity of the String buffer i.e. 16 + 1 System.out.println("capacity = " + buff.capacity()); } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果:
capacity = 30 capacity = 17
示例:使用 null 時遇到異常
如果我們將 null 值作為輸入傳遞給 StringBuilder 物件,則該方法會丟擲 NullPointerException。
在以下程式中,我們宣告一個 StringBuilder 物件併為其分配 null 值。
public class StringBuilderCapacity { public static void main(String args[]) { StringBuilder cap = new StringBuilder(null); System.out.println("The capacity: " + cap.capacity()); } }
異常
如果我們嘗試編譯並執行上述程式,則該方法會丟擲 NullPointer 異常,而不是輸出:
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.length()" because "str" is null at java.base/java.lang.AbstractStringBuilder.<init>(AbstractStringBuilder.java:117) at java.base/java.lang.StringBuilder.<init>(StringBuilder.java:158) at StringBuilderCapacity.main(StringBuilderCapacity.java:6)
示例:檢查 StringBuilder 的預設容量
當我們不向 StringBuilder 物件傳遞任何輸入時,它被視為一個空 StringBuilder。在這種情況下,該方法將返回預設容量值。
在以下示例中,我們宣告一個 StringBuilder 物件,並且沒有為其分配任何輸入。因此,StringBuilder 為空。然後,我們在此 StringBuilder 上呼叫該方法以嘗試獲取容量。
public class StringBuilderCapacity { public static void main(String args[]) { // declare an empty StringBuilder StringBuilder cap = new StringBuilder(); //print the default capacity System.out.println("The capacity: " + cap.capacity()); } }
輸出
讓我們編譯並執行上述程式,輸出如下所示:
The capacity: 16
java_lang_stringbuilder.htm
廣告