Data Types
String Operations
Transforming Text
A user submits a search query: " PIZZA ". Before searching, you need to clean it up (trim spaces), normalize it (lowercase), then search your database. String operations make this possible.
Change case (normalize input)
Convert text to uppercase or lowercase for consistent comparisons.
public class Case {
public static void main(String[] args) {
String input = ;
String upper = input.toUpperCase();
String lower = input.toLowerCase();
System.out.println("Original: " + input);
System.out.println("Upper: " + upper);
System.out.println("Lower: " + lower);
// Practical: case-insensitive comparison
String userAnswer = ;
if (userAnswer.toLowerCase().equals("yes")) {
System.out.println("User agreed (any case)");
}
}
}
public class Case {
public static void main(String[] args) {
String input = ;
String upper = input.toUpperCase();
String lower = input.toLowerCase();
System.out.println("Original: " + input);
System.out.println("Upper: " + upper);
System.out.println("Lower: " + lower);
// Practical: case-insensitive comparison
String userAnswer = ;
if (userAnswer.toLowerCase().equals("yes")) {
System.out.println("User agreed (any case)");
}
}
}
public class Case {
public static void main(String[] args) {
String input = ;
String upper = input.toUpperCase();
String lower = input.toLowerCase();
System.out.println("Original: " + input);
System.out.println("Upper: " + upper);
System.out.println("Lower: " + lower);
// Practical: case-insensitive comparison
String userAnswer = ;
if (userAnswer.toLowerCase().equals("yes")) {
System.out.println("User agreed (any case)");
}
}
}
public class Case {
public static void main(String[] args) {
String input = ;
String upper = input.toUpperCase();
String lower = input.toLowerCase();
System.out.println("Original: " + input);
System.out.println("Upper: " + upper);
System.out.println("Lower: " + lower);
// Practical: case-insensitive comparison
String userAnswer = ;
if (userAnswer.toLowerCase().equals("yes")) {
System.out.println("User agreed (any case)");
}
}
}
public class Case {
public static void main(String[] args) {
String input = ;
String upper = input.toUpperCase();
String lower = input.toLowerCase();
System.out.println("Original: " + input);
System.out.println("Upper: " + upper);
System.out.println("Lower: " + lower);
// Practical: case-insensitive comparison
String userAnswer = ;
if (userAnswer.toLowerCase().equals("yes")) {
System.out.println("User agreed (any case)");
}
}
}
public class Case {
public static void main(String[] args) {
String input = ;
String upper = input.toUpperCase();
String lower = input.toLowerCase();
System.out.println("Original: " + input);
System.out.println("Upper: " + upper);
System.out.println("Lower: " + lower);
// Practical: case-insensitive comparison
String userAnswer = ;
if (userAnswer.toLowerCase().equals("yes")) {
System.out.println("User agreed (any case)");
}
}
}
public class Case {
public static void main(String[] args) {
String input = ;
String upper = input.toUpperCase();
String lower = input.toLowerCase();
System.out.println("Original: " + input);
System.out.println("Upper: " + upper);
System.out.println("Lower: " + lower);
// Practical: case-insensitive comparison
String userAnswer = ;
if (userAnswer.toLowerCase().equals("yes")) {
System.out.println("User agreed (any case)");
}
}
}
public class Case {
public static void main(String[] args) {
String input = ;
String upper = input.toUpperCase();
String lower = input.toLowerCase();
System.out.println("Original: " + input);
System.out.println("Upper: " + upper);
System.out.println("Lower: " + lower);
// Practical: case-insensitive comparison
String userAnswer = ;
if (userAnswer.toLowerCase().equals("yes")) {
System.out.println("User agreed (any case)");
}
}
}
public class Case {
public static void main(String[] args) {
String input = ;
String upper = input.toUpperCase();
String lower = input.toLowerCase();
System.out.println("Original: " + input);
System.out.println("Upper: " + upper);
System.out.println("Lower: " + lower);
// Practical: case-insensitive comparison
String userAnswer = ;
if (userAnswer.toLowerCase().equals("yes")) {
System.out.println("User agreed (any case)");
}
}
}
Normalize input before comparing - users might type "YES", "Yes", or "yes".
Trim whitespace (clean input)
Remove extra spaces from the beginning and end of user input.
public class Trim {
public static void main(String[] args) {
String messyInput = " Alice Smith ";
String clean = messyInput.trim();
System.out.println("With spaces: '" + messyInput + "'");
System.out.println("Trimmed: '" + clean + "'");
System.out.println("Length before: " + messyInput.length());
System.out.println("Length after: " + clean.length());
// strip() is like trim() but handles Unicode whitespace
String tabbed = ;
System.out.println("Strip: '" + tabbed.strip() + "'");
}
}
public class Trim {
public static void main(String[] args) {
String messyInput = " Alice Smith ";
String clean = messyInput.trim();
System.out.println("With spaces: '" + messyInput + "'");
System.out.println("Trimmed: '" + clean + "'");
System.out.println("Length before: " + messyInput.length());
System.out.println("Length after: " + clean.length());
// strip() is like trim() but handles Unicode whitespace
String tabbed = ;
System.out.println("Strip: '" + tabbed.strip() + "'");
}
}
Users often accidentally add spaces. Always trim input before processing.
Find substring (search in text)
Check if a string contains another string, and where.
public class Find {
public static void main(String[] args) {
String text = ;
// Find first occurrence
int pos = text.indexOf("Hello");
System.out.println("'Hello' first found at: " + pos);
// Find from a position
int secondPos = text.indexOf("Hello", pos + 1);
System.out.println("'Hello' second found at: " + secondPos);
// Check if not found
int notFound = text.indexOf("Python");
System.out.println("'Python' found at: " + notFound); // -1
// contains() is simpler for yes/no
System.out.println("Contains 'World'? " + text.contains("World"));
System.out.println("Contains 'Python'? " + text.contains("Python"));
}
}
public class Find {
public static void main(String[] args) {
String text = ;
// Find first occurrence
int pos = text.indexOf("Hello");
System.out.println("'Hello' first found at: " + pos);
// Find from a position
int secondPos = text.indexOf("Hello", pos + 1);
System.out.println("'Hello' second found at: " + secondPos);
// Check if not found
int notFound = text.indexOf("Python");
System.out.println("'Python' found at: " + notFound); // -1
// contains() is simpler for yes/no
System.out.println("Contains 'World'? " + text.contains("World"));
System.out.println("Contains 'Python'? " + text.contains("Python"));
}
}
indexOf returns the position, or -1 if not found. contains is simpler for yes/no.
Replace text
Substitute parts of a string with something else.
public class Replace {
public static void main(String[] args) {
String original = "Hello World";
// Replace all occurrences
String replaced = original.replace("l", "L");
System.out.println("Replace l→L: " + replaced);
// Replace substring
String newWorld = original.replace("World", "Java");
System.out.println("Replace World→Java: " + newWorld);
// Original unchanged (strings are immutable)
System.out.println("Original still: " + original);
// Practical: censor words
String message = ;
String censored = message.replace("bad", "***");
System.out.println("Censored: " + censored);
}
}
public class Replace {
public static void main(String[] args) {
String original = "Hello World";
// Replace all occurrences
String replaced = original.replace("l", "L");
System.out.println("Replace l→L: " + replaced);
// Replace substring
String newWorld = original.replace("World", "Java");
System.out.println("Replace World→Java: " + newWorld);
// Original unchanged (strings are immutable)
System.out.println("Original still: " + original);
// Practical: censor words
String message = ;
String censored = message.replace("bad", "***");
System.out.println("Censored: " + censored);
}
}
replace creates a new string - the original is unchanged (strings are immutable).
Split string (parse CSV)
Break a string into parts using a delimiter.
public class Split {
public static void main(String[] args) {
// Split CSV line
String csvLine = ;
String[] parts = csvLine.split(",");
System.out.println("CSV: " + csvLine);
System.out.println("Name: " + parts[0]);
System.out.println("Age: " + parts[1]);
System.out.println("Job: " + parts[2]);
// Split by multiple spaces
String sentence = "Hello World Java";
String[] words = sentence.split("\\s+");
System.out.println("Words: " + words.length);
for (String word : words) {
System.out.println(" - " + word);
}
}
}
public class Split {
public static void main(String[] args) {
// Split CSV line
String csvLine = ;
String[] parts = csvLine.split(",");
System.out.println("CSV: " + csvLine);
System.out.println("Name: " + parts[0]);
System.out.println("Age: " + parts[1]);
System.out.println("Job: " + parts[2]);
// Split by multiple spaces
String sentence = "Hello World Java";
String[] words = sentence.split("\\s+");
System.out.println("Words: " + words.length);
for (String word : words) {
System.out.println(" - " + word);
}
}
}
Splitting is essential for parsing structured data like CSV files.
Exercise: MoreOps.java
Explore more operations: substring, contains, startsWith, endsWith