What are Strings?
- Definition of strings: Strings are sequences of characters, represented by the
String
class in Java. - Explanation of string literals: String literals are sequences of characters enclosed in double quotes (
"
). - Declaration and initialization of strings: Examples of string declaration and initialization:
Example:
String str1 = "Hello, World!"; // Using string literal String str2 = new String("Java"); // Using new keyword
String Class Overview
- Explanation of the
String
class in Java: TheString
class provides methods for manipulating strings and represents immutable sequences of characters. - Immutable nature of strings: Once a string object is created, it cannot be changed.
String Creation and Initialization
Creating Strings
- Using string literals:
String greeting = "Hello";
- Using the
new
keyword:
String message = new String("Welcome");
String Initialization
- Direct assignment:
String firstName = "John";
- Using constructor methods:
char[] nameArray = {'M', 'a', 'r', 'y'};
String lastName = new String(nameArray);
String Methods and Operations
Basic String Operations
- Concatenation (
+
operator):
String fullName = firstName + " " + lastName;
- String length (
length()
method):
int length = fullName.length();
String Methods
charAt(int index)
:
char firstChar = fullName.charAt(0);
indexOf(String str)
:
int index = fullName.indexOf("Mary");
substring(int beginIndex)
andsubstring(int beginIndex, int endIndex)
:
String subString1 = fullName.substring(6); // "Smith" String subString2 = fullName.substring(0, 4); // "John"
toUpperCase()
andtoLowerCase()
:
String upperCaseFullName = fullName.toUpperCase();
String lowerCaseLastName = lastName.toLowerCase();
equals(Object obj)
andequalsIgnoreCase(String anotherString)
:
boolean isEqual = fullName.equals(lastName); boolean isEqualIgnoreCase = fullName.equalsIgnoreCase("mary smith");
startsWith(String prefix)
andendsWith(String suffix)
:
javaCopy code
boolean startsWithJohn = fullName.startsWith("John"); boolean endsWithSmith = fullName.endsWith("Smith");
trim()
:
javaCopy code
String paddedString = " Java "; String trimmedString = paddedString.trim(); // "Java"
replace(char oldChar, char newChar)
:
javaCopy code
String replacedString = fullName.replace('J', 'K'); // "Kohn Smith"
split(String regex)
:
javaCopy code
String[] parts = fullName.split(" "); // {"John", "Smith"}
valueOf()
:
javaCopy code
int number = 123; String numberString = String.valueOf(number); // "123"
String Manipulation
Concatenation
- Using the
+
operator:
String message = "Hello, " + name;
- Using the
concat()
method:
String newMessage = message.concat("!");
String Comparison
- Using
equals()
andequalsIgnoreCase()
:
boolean isEqual = message.equals(newMessage); boolean isEqualIgnoreCase = message.equalsIgnoreCase("hello, world!");
Searching and Manipulation
- Using
indexOf()
,lastIndexOf()
,startsWith()
, andendsWith()
:
int index = fullName.indexOf("John");
boolean startsWith = fullName.startsWith("Jo");
- Using
substring()
:
String lastName = fullName.substring(5);
Modifying Strings
- Immutable nature of strings: Strings cannot be modified after creation.
- Using
StringBuilder
andStringBuffer
for mutable string operations:
StringBuilder builder = new StringBuilder();
builder.append("Java"); builder.append(" is");
builder.append(" awesome");
String result = builder.toString(); // "Java is awesome"
String Formatting
String Formatting
- Using
printf()
:
System.out.printf("The value of x is %d and y is %f", x, y);
- Using
String.format()
:
String formattedString = String.format("The value of x is %d", x);
Best Practices and Tips
String Pool and Memory Management
- Understanding string pooling: String literals are stored in a string pool to conserve memory.
- Implications for memory management: Strings in the string pool are reused to minimize memory consumption.
Efficiency and Performance
- Choosing the right string manipulation methods: Use
StringBuilder
for efficient string concatenation. - Using
StringBuilder
for concatenation of large strings:
StringBuilder builder = new StringBuilder();
for (int i = 0; i < 1000; i++) {
builder.append("Java");
}
String result = builder.toString();
Understanding Java Strings is fundamental for Java programmer. Mastery of string manipulation and utilization of string methods can significantly enhance the functionality and efficiency of Java applications.