Java StringBuffer setLength()方法及示例
StringBuffer类的 setLength(int newLength) 方法是一个内置的方法,用于 设置字符序列的长度等于newLength。 如果作为参数传递的newLength小于旧的长度,那么旧的长度将被改变为newLength。如果作为参数传递的newLength大于或等于旧的长度,空字符(’\u0000’)将被附加在旧序列的末尾,这样长度就变成了newLength参数。
语法
public void setLength(int newLength)
参数:
该方法接受一个参数 newLength ,它是Integer类型的值,指的是你要设置的序列的新长度。
返回:
该方法不返回任何东西。
异常:
如果newLength是负的,那么就会 出现IndexOutOfBoundsException
下面的程序说明了java.lang.StringBuffer.setLength()方法:
示例1 :
// Java program to demonstrate
// the setLength() Method.
  
class GFG {
  
    public static void main(String[] args)
    {
        // create a StringBuffer object
        // with a String pass as parameter
        StringBuffer str
            = new StringBuffer("WelcomeGeeks");
  
        // print string
        System.out.println("String length = "
                           + str.length() + 
                  " and contains = " + str);
  
        // set length equal to 10
        str.setLength(10);
  
        // print string
        System.out.println("After setLength() String = "
                           + str.toString());
    }
}
输出
String length = 12 and contains = WelcomeGeeks
After setLength() String = WelcomeGee
例2 :
// Java program to demonstrate
// the setLength() Method.
  
class GFG {
    public static void main(String[] args)
    {
  
        // create a StringBuffer object
        // with a String pass as parameter
        StringBuffer str
            = new StringBuffer("Tony Stark will die");
  
        // print string
        System.out.println("String length = "
                           + str.length() + 
        " and contains = \"" + str + "\"");
  
        // set length equal to 25
        str.setLength(25);
  
        // print string
        System.out.println("After setLength() String = \""
                           + str.toString() + "\"");
    }
}
输出
String length = 19 and contains = "Tony Stark will die"
After setLength() String = "Tony Stark will die      "
例3: 当新的长度为负数时。
// Java program to demonstrate
// Exception thrown by the setLength() Method.
  
class GFG {
    public static void main(String[] args)
    {
  
        // create a StringBuffer object
        // with a String pass as parameter
        StringBuffer str
            = new StringBuffer("Tony Stark");
  
        try {
            // pass length -15
            str.setLength(-15);
        }
        catch (Exception e) {
  
            e.printStackTrace();
        }
    }
}
输出
java.lang.StringIndexOutOfBoundsException: String index out of range: -15
    at java.lang.AbstractStringBuffer.setLength(AbstractStringBuffer.java:207)
    at java.lang.StringBuffer.setLength(StringBuffer.java:76)
    at GFG.main(File.java:15)
参考文献:
https://docs.oracle.com/javase/10/docs/api/java/lang/StringBuffer.html#setLength(int)
极客教程