![java package tutorial](/java/lang/images/java.jpg)
- Java.lang Package classes
- Java.lang - Home
- 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 Package extras
- Java.lang - Interfaces
- Java.lang - Errors
- Java.lang - Exceptions
- Java.lang Package Useful Resources
- Java.lang - Useful Resources
- Java.lang - Discussion
Java StringBuilder delete() Method
The Java StringBuilder delete() method is used to remove the elements of a substring from a sequence. The method starts removing the substring from the beginning index up to an element before the last index; that is, the start index is inclusive while the ending index is exclusive.
However, if the start index is less than end index or greater than the length of a sequence created, the method throws a StringIndexOutOfBounds Exception.
Note − If the ending index is greater than the length of the sequence, the method removes all the characters from the start index to the end of this sequence.
Syntax
Following is the syntax for the Java StringBuilder delete() method.
public StringBuilder delete(int start, int end)
Parameters
- start − This is the beginning index, inclusive.
- end − This is the ending index, exclusive.
Return Value
This method returns the substring of this sequnece.
Example: Deleting a substring from a StringBuilder
If the startIndex value is greater than 0 and the endIndex value is less than the sequence length, it returns the substring of this sequence.
In the following program, first, we are instantiating the StringBuilder Class with the value “Welcome to Tutorials Point”. Using the delete() method, we are trying to delete the string at a given range (startIndex = 5 and endIndex = 10.).
public class StringBuilderDemo { public static void main(String[] args) { //create a StringBuilder StringBuilder sb = new StringBuilder("Welcome to Tutorials Point"); System.out.println("Before deletion the string is: " + sb); //initialize the startInde and endIndex values int startIndex = 11; int endIndex = 21; System.out.println("The startIndex and endIndex values are: " + startIndex + " and " + endIndex); //using the delete() method StringBuilder new_str = sb.delete(startIndex, endIndex); System.out.println("After deletion the remaing string is: " + new_str); } }
Output
On executing the above program, it will produce the following result −
Before deletion the string is: Welcome to Tutorials Point The startIndex and endIndex values are: 11 and 21 After deletion the remaing string is: Welcome to Point
Example: Facing StringIndexOutOfBoundsException while Deleting a substring from a StringBuilder
If the startIndex value is greater than the endIndex value, this method throws a StringIndexOutOfBoundsException.
In the following example, we are creating an object of the StringBuilder with the value “JavaProgramming”. Then using the delete() method, we are trying to delete the string at the given range ( where startIndex > endIndex).
public class StringBuilderDemo { public static void main(String[] args) { try { //create an object of the StringBuilder StringBuilder sb = new StringBuilder("JavaProgramming"); System.out.println("Before deletion the string is: " + sb); //initialize the startIndex and endIndex values int startIndex = 10;// greater than the endIndex value int endIndex = 5; System.out.println("The startIndex and endIndex values are: " + startIndex + " and " + endIndex); //using the delete() method System.out.println("After deletion rhe remaing string is: " + sb.delete(startIndex, endIndex)); } catch(IndexOutOfBoundsException e) { e.printStackTrace(); System.out.println("Exception: " + e); } } }
Output
Following is the output of the above program −
Before deletion the string is: JavaProgramming The startIndex and endIndex values are: 10 and 5 java.lang.StringIndexOutOfBoundsException: Range [10, 5) out of bounds for length 15 at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55) at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52) at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213) at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210) at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112) at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349) at java.base/java.lang.AbstractStringBuilder.delete(AbstractStringBuilder.java:904) at java.base/java.lang.StringBuilder.delete(StringBuilder.java:475) at StringBuilderDemo.main(StringBuilderDemo.java:12) Exception: java.lang.StringIndexOutOfBoundsException: Range [10, 5) out of bounds for length 15
Example: Facing IndexOutOfBoundsException while Deleting a substring from a StringBuilder
If the startIndex contains a negative value, the delete() method throws an IndexOutOfBoundsException.
In this example, we are creating a StringBuilder with the value“TutorialsPoint”. We are then trying to delete the string at the given range(where the startIndex holds the negative value -2) using the delete() method.
public class StringBuilderDemo { public static void main(String[] args) { try { //create an object of the StringBuilder StringBuilder sb = new StringBuilder("TutorialsPoint"); System.out.println("Before deletion the string is: " + sb); //initialize the startIndex and endIndex values int startIndex = -2;// holds negative value int endIndex = 5; System.out.println("The startIndex and endIndex values are: " + startIndex + " and " + endIndex); //using the delete() method System.out.println("After deletion rhe remaing string is: " + sb.delete(startIndex, endIndex)); } catch(IndexOutOfBoundsException e) { e.printStackTrace(); System.out.println("Exception: " + e); } } }
Output
The above program, produces the following results −
Before deletion the string is: TutorialsPoint The startIndex and endIndex values are: -2 and 5 java.lang.StringIndexOutOfBoundsException: Range [-2, 5) out of bounds for length 14 at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55) at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52) at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213) at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210) at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Preconditions.java:112) at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Preconditions.java:349) at java.base/java.lang.AbstractStringBuilder.delete(AbstractStringBuilder.java:904) at java.base/java.lang.StringBuilder.delete(StringBuilder.java:475) at StringBuilderDemo.main(StringBuilderDemo.java:14) Exception: java.lang.StringIndexOutOfBoundsException: Range [-2, 5) out of bounds for length 14