String Class
Initializing Strings
Strings can be created using literals or constructors.
Using String Literals
String s1 = null;
String s2 = "";
String s3 = "Hello";
Using Constructors
String s4 = new String(); // Empty string
String s5 = new String("World");
char[] letters = {'J', 'a', 'v', 'a'};
String s6 = new String(letters);
Commmon String Operations
Case Conversion and Transformation
String upper = "JAVA";
System.out.println(upper.toLowerCase()); // "java"
String lower = "programming";
System.out.println(lower.toUpperCase()); // "PROGRAMMING"
String text = "sample";
char[] chars = text.toCharArray();
System.out.println(Arrays.toString(chars)); // [s, a, m, p, l, e]
int number = 456;
System.out.println(String.valueOf(number)); // "456"
String Validation
String data = "exampleData123";
System.out.println(data.startsWith("ex")); // true
System.out.println(data.endsWith("123")); // true
System.out.println(data.isEmpty()); // false
System.out.println(data.contains("Data")); // true
String compare = "exampleData123";
System.out.println(data.equals(compare)); // true
Key Comparison Note
String a = "test";
String b = "test";
String c = new String("test");
System.out.println(a.equals(b)); // true
System.out.println(a == b); // true (same literal)
System.out.println(a.equals(c)); // true
System.out.println(a == c); // false (different objects)
Character and Substring Location
String target = "searchTarget123";
System.out.println(target.indexOf('r')); // 2
System.out.println(target.lastIndexOf('r')); // 9
System.out.println(target.charAt(6)); // 'h'
System.out.println(target.length()); // 15
Accessing characters beyond the string length throws StringIndexOutOfBoundsException.
String Manipulation
String original = "apple orange apple";
System.out.println(original.replace("apple", "banana")); // "banana orange banana"
String dateStr = "2023/12/25";
String[] parts = dateStr.split("/");
System.out.println(Arrays.toString(parts)); // [2023, 12, 25]
String source = "HelloWorld";
System.out.println(source.substring(5)); // "World"
System.out.println(source.substring(3, 7)); // "loWo"
String padded = " text with spaces ";
System.out.println(padded.trim()); // "text with spaces"
StringBuffer and StringBuilder
StringBuffer and StringBuilder represent mutable sequences of characters.
StringBuffer Example
StringBuffer buffer = new StringBuffer("Start");
buffer.append("End");
System.out.println(buffer); // "StartEnd"
buffer.insert(5, "Middle");
System.out.println(buffer); // "StartMiddleEnd"
buffer.setCharAt(10, 'X');
System.out.println(buffer); // "StartMiddleXnd"
buffer.replace(5, 11, "Center");
System.out.println(buffer); // "StartCenternd"
buffer.deleteCharAt(11);
System.out.println(buffer); // "StartCenterd"
buffer.delete(5, 11);
System.out.println(buffer); // "Startd"
buffer.reverse();
System.out.println(buffer); // "dtratS"
Comparison of String Types
| Feature | String | StringBuffer | StringBuilder |
|---|---|---|---|
| Mutability | Immutable | Mutable | Mutable |
| Thread Safety | N/A | Thread-safe | Not thread-safe |
| Performance | Slower for modifications | Faster for modifications | Fastest for modifications |
| Use Case | When immutability is required | Multi-threaded environments | Single-threaded environments |
System Class
Provides system-related utilities.
long timestamp = System.currentTimeMillis();
System.out.println(timestamp);
int[] sourceArray = {10, 20, 30, 40};
int[] destination = new int[5];
System.arraycopy(sourceArray, 0, destination, 1, 3);
System.out.println(Arrays.toString(destination)); // [0, 10, 20, 30, 0]
Date and Time Handling
Date Class
Date now = new Date();
long milliseconds = now.getTime();
System.out.println(milliseconds);
SimpleDateFormat for Formatting
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = formatter.format(new Date());
System.out.println(formattedDate);
String dateInput = "2023/05/15 14:30:00";
SimpleDateFormat parser = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date parsedDate = parser.parse(dateInput);
System.out.println(parsedDate);
Calendar Class
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH); // 0-11
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour24 = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
System.out.printf("%d-%02d-%02d %02d:%02d:%02d%n", year, month+1, day, hour24, minute, second);
calendar.set(2022, Calendar.JUNE, 10, 9, 45, 0);
Date calendarDate = calendar.getTime();
System.out.println(calendarDate);
Random Number Generation
Random generator = new Random();
int randomInt = generator.nextInt();
int boundedRandom = generator.nextInt(100); // 0-99
System.out.println("Random integer: " + randomInt);
System.out.println("Random 0-99: " + boundedRandom);