Strings, Char and Integer manipulation in Java
When solving Data Structures and Algorithms (DSA) questions related to strings, I consistently have a conceptual understanding of manipulating input strings to achieve the desired output. However, leveraging the built-in methods or properties of the String class can significantly improve the process.
Here are some common tips and tricks I employ, and keeping these techniques handy can help me write code faster.
Char and Integers
char to int
char charValue = '9'; int intValue = Character.getNumericValue(charValue); // Result: 9
int to char
int intValue = 65; char charValue = (char) intValue; // Result: 'A' // The below example is how you actually get the correct value in char int intValue = 1; char charValue = (char) (intValue + '0'); // Result: '1' // Another way to do the same int intValue = 1; char charValue = Character.forDigit(intValue, 10); // Result: '1' // The above method works if the int value lies between 1-9, if it is more than 9, then use string to store
Strings and Integers
String to int conversion
// Method - 1 int signedPositiveExample = Integer.parseInt("+205"); // Result: 205 // Method - 2 int num = Integer.valueOf("344"); // Result: 344
int to String Conversion
// Method - 1 int num = 15; String numAsString = Integer.toString(num); // Result: "15" // Method - 2 (with formatting) int hour = 9; // Example value String hourString = String.format("%02d", hour); // Result: "09" //The format specifier %02d indicates that the integer should be formatted with at least two digits, and if the number is less than two digits, it will be padded with leading zeros.
Chars and Strings
String to Char array and Vice versa
String s = "Hello"; // Example string // String to char array char[] arr = s.toCharArray(); // Result: ['H', 'e', 'l', 'l', 'o'] // Char array to String [Method - 1] String str = String.valueOf(arr); // Result: "Hello" // Char array to String [Method - 2] char arr[] = new char[26]; for(int i=0; i<s.length(); i++) arr[s.charAt(i)-'a']++; String keyst = new String(arr);
Single char to String
// Method - 1 char ch = 'A'; // Example character String str = String.valueOf(ch); // Result: "A" // Method - 2 char ch = 'B'; // Example character String str = Character.toString(ch); // Result: "B"
Check if a char is present in the string or not
String str = "Hello, World!"; // Example string char ch1 = 'o'; // Example character to find int index1 = str.indexOf(ch1); // Result: 4 char ch2 = 'z'; // Character not present in the string int index2 = str.indexOf(ch2); // Result: -1
Useful String Methods
Get a substring of a string
String oldString = "Hello, World!"; int i = 0; int j = 5; String newString = oldString.substring(i, j); // Result: "Hello"
Reverse a String
String givenString = "abc"; StringBuilder sb = new StringBuilder(givenString); sb.reverse(); // Result: "cba"
Split String based on some delimiter
String str = "This is a sentence"; String[] strArr = str.split(" "); // Result: {"This", "is", "a", "sentence"}
Save some integers in a string
int a = 1, b = 2, c = 3, d = 4; String st = String.format("%d%d%d%d", a, b, c, d); // Result: "1234"
Trim a string of its whitespaces
String str = " Trim me "; String s = str.trim(); // Result: "Trim me"
Check if two strings are equal
String s1 = "Hello"; String s2 = "Hello"; boolean areEqual = s1.equals(s2); // Result: true // IMP Note: For StringBuffer and StringBuilder, use equals method for content equality, as == checks for object reference equality.
Useful StringBuilder Methods
- Insert at an index:
javaCopy codeStringBuilder sb = new StringBuilder("Hello, World!");
sb.insert(3, 'a'); // Result: "Heallo, World!"
- Add an Element:
javaCopy codeStringBuilder sb = new StringBuilder("Hello");
sb.append('d'); // Result: "Hellod"
- Add a string at the end:
javaCopy codeStringBuilder sb = new StringBuilder("Hello");
sb.append("abc"); // Result: "Helloabc"
- Get the start index of a string:
javaCopy codeStringBuilder sb = new StringBuilder("ABCDE");
int startIndex = sb.indexOf("BC"); // Result: 1
- Remove a particular string from StringBuilder:
javaCopy codeStringBuilder sb = new StringBuilder("Hello, World!");
sb.replace(7, 12, ""); // Result: "Hello!"
- Convert String to StringBuilder:
javaCopy codeString str = "Hello";
StringBuilder sb = new StringBuilder(str); // Result: StringBuilder with content "Hello"
- Convert StringBuilder to String:
javaCopy codeStringBuilder sb = new StringBuilder("Hello");
String str = sb.toString(); // Result: "Hello"
- Replace char with another char at an index:
javaCopy codeStringBuilder sb = new StringBuilder("Hello");
sb.setCharAt(3, 'a'); // Result: "Healo"
Thanks for reading, if you would like to connect with me, here is my LinkedIn profile - https://www.linkedin.com/in/divyanshi-dixit/