String Handling in Java
In Java, the String class is used to create and manipulate strings. Strings in Java are immutable, meaning once a String object is created, its value cannot be changed. Here’s a guide to common string handling operations and methods in Java.
1. Creating Strings
Strings can be created in Java in several ways:
1.1 Using String Literals
  public class StringExample {
    public static void main(String[] args) {
        String str1 = "Hello, World!";
        System.out.println(str1);
    }
}
  
  1.2 Using the new Keyword 
  
  
  
  
  
  
  
  
  
  public class StringExample {
    public static void main(String[] args) {
        String str2 = new String("Hello, Java!");
        System.out.println(str2);
    }
}
  
  2. Common String Methods
2.1 Length of a String
The length() method returns the number of characters in the string.
  public class StringExample {
    public static void main(String[] args) {
        String str = "Hello, Java!";
        System.out.println("Length: " + str.length());
    }
}
  
  2.2 Concatenation
Use the concat() method or the + operator to concatenate strings.
  public class StringExample {
    public static void main(String[] args) {
        String str1 = "Hello, ";
        String str2 = "Java!";
        String result = str1.concat(str2);
        System.out.println("Concatenated: " + result);
    }
}
  
  2.3 Substring
The substring() method extracts a part of the string.
  public class StringExample {
    public static void main(String[] args) {
        String str = "Hello, Java!";
        String subStr = str.substring(7, 11); // Extracts "Java"
        System.out.println("Substring: " + subStr);
    }
}
  
  2.4 Replace
The replace() method replaces occurrences of a specified character or substring.
  public class StringExample {
    public static void main(String[] args) {
        String str = "Hello, Java!";
        String newStr = str.replace("Java", "World");
        System.out.println("Replaced: " + newStr);
    }
}
  
  2.5 Split
The split() method splits the string based on a delimiter.
  public class StringExample {
    public static void main(String[] args) {
        String str = "apple,banana,orange";
        String[] fruits = str.split(",");
        for (String fruit : fruits) {
            System.out.println("Fruit: " + fruit);
        }
    }
}
  
  2.6 Trim
The trim() method removes leading and trailing whitespace.
  public class StringExample {
    public static void main(String[] args) {
        String str = "  Hello, Java!  ";
        String trimmedStr = str.trim();
        System.out.println("Trimmed: [" + trimmedStr + "]");
    }
}
  
  2.7 Convert to Uppercase and Lowercase
The toUpperCase() and toLowerCase() methods convert the string to uppercase or lowercase.
  public class StringExample {
    public static void main(String[] args) {
        String str = "Hello, Java!";
        System.out.println("Uppercase: " + str.toUpperCase());
        System.out.println("Lowercase: " + str.toLowerCase());
    }
}
  
  2.8 Check Equality
Use equals() to compare strings for equality, and equalsIgnoreCase() for case-insensitive comparison.
  public class StringExample {
    public static void main(String[] args) {
        String str1 = "Hello, Java!";
        String str2 = "Hello, Java!";
        String str3 = "hello, java!";
        
        System.out.println("Equals: " + str1.equals(str2)); // true
        System.out.println("Equals Ignore Case: " + str1.equalsIgnoreCase(str3)); // true
    }
}
  
  2.9 Index of a Substring
The indexOf() method returns the index of the first occurrence of a specified substring.
  public class StringExample {
    public static void main(String[] args) {
        String str = "Hello, Java!";
        int index = str.indexOf("Java");
        System.out.println("Index of 'Java': " + index);
    }
}
  
  3. StringBuilder and StringBuffer
For mutable strings, use StringBuilder and StringBuffer. StringBuilder is not synchronized and is faster, while StringBuffer is synchronized and thread-safe.
3.1 StringBuilder
  public class StringBuilderExample {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("Hello");
        sb.append(", Java!");
        System.out.println("StringBuilder: " + sb.toString());
    }
}
  
  3.2 StringBuffer
  public class StringBufferExample {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer("Hello");
        sb.append(", Java!");
        System.out.println("StringBuffer: " + sb.toString());
    }
}
  
  4. String Formatting
Use String.format() or System.out.printf() to format strings.
Code Example:
  public class StringFormatExample {
    public static void main(String[] args) {
        int age = 30;
        String name = "John";
        String formatted = String.format("Name: %s, Age: %d", name, age);
        System.out.println(formatted);
    }
}