Strings in Java
1. What is a String in Java?
A String is a sequence of characters used to store text.
Example:
String name = "Java";
[Link](name);
Output:
Java
In Java, String is not a primitive data type. It is a class.
String s = "Hello";
Here:
• String → class
• s → reference variable
• "Hello" → String object
String belongs to:
[Link] package
No need to import it.
2. Creating Strings in Java
There are two ways:
1. String Literal
Most commonly used.
String s = "Java";
Java stores literals in a special memory area called:
String Constant Pool
Example:
String a = "Hello";
String b = "Hello";
Both refer to the same object.
Memory:
String Pool
"Hello"
↑
|
a --------
b --------
2. Using new Keyword
Creates a new object.
String s = new String("Java");
Memory:
Heap Memory
"Java" object
s -------->
Example:
String a = new String("Hello");
String b = new String("Hello");
[Link](a==b);
Output:
false
Because both objects are different.
3. String is Immutable
Immutable means:
Once a String object is created, its value cannot be changed.
Example:
String s="Java";
s="Python";
[Link](s);
Output:
Python
What happened?
Old object:
Java
New object:
Python
Reference changed.
Original String is not modified.
4. Why String is Immutable?
Reasons:
1. Security
Strings are used for:
• passwords
• database connections
• file paths
Changing them can create security problems.
2. String Pool
Multiple variables share the same object.
3. Thread Safety
Immutable objects are safe in multiple threads.
5. String Class Methods
Java provides many built-in methods.
1. length()
Returns number of characters.
public class Main {
public static void main(String[] args){
String s="Java";
[Link]([Link]());
}
}
Output:
4
2. charAt()
Access character by index.
Index starts from 0.
J a v a
0 1 2 3
Program:
String s="Java";
[Link]([Link](2));
Output:
v
3. concat()
Joining strings.
String a="Hello";
String b="Java";
[Link]([Link](b));
Output:
HelloJava
4. String Concatenation (+)
String a="Hello";
String b=a+" World";
[Link](b);
Output:
Hello World
5. equals()
Checks content.
String a="Java";
String b="Java";
[Link]([Link](b));
Output:
true
6. == Operator
Checks reference.
String a=new String("Java");
String b=new String("Java");
[Link](a==b);
Output:
false
equals() vs ==
equals() ==
Compares values Compares memory address
Used for String comparison Reference comparison
7. equalsIgnoreCase()
Ignores uppercase/lowercase.
String a="JAVA";
[Link]([Link]("java"));
Output:
true
8. toUpperCase()
String s="java";
[Link]([Link]());
Output:
JAVA
9. toLowerCase()
String s="JAVA";
[Link]([Link]());
Output:
java
10. trim()
Removes spaces at beginning and end.
String s=" Java ";
[Link]([Link]());
Output:
Java
11. substring()
Extract part of String.
Syntax:
substring(start,end)
Example:
String s="Programming";
[Link]([Link](0,7));
Output:
Program
12. replace()
Replace characters.
String s="Java";
[Link]([Link]('a','o'));
Output:
Jovo
13. contains()
Checks existence.
String s="Java Programming";
[Link]([Link]("Java"));
Output:
true
14. startsWith()
String s="Java";
[Link]([Link]("Ja"));
Output:
true
15. endsWith()
String s="Java";
[Link]([Link]("va"));
Output:
true
16. indexOf()
Find position.
String s="Java";
[Link]([Link]('v'));
Output:
2
17. lastIndexOf()
String s="banana";
[Link]([Link]('a'));
Output:
5
18. split()
Break string into array.
String s="Java Python C";
String arr[]=[Link](" ");
for(String x:arr)
{
[Link](x);
}
Output:
Java
Python
C
19. isEmpty()
String s="";
[Link]([Link]());
Output:
true
6. Taking String Input
Scanner
import [Link];
class Main{
public static void main(String args[]){
Scanner sc=new Scanner([Link]);
String name=[Link]();
[Link](name);
}
}
Input:
Java
Output:
Java
nextLine()
Reads complete sentence.
String s=[Link]();
Input:
Java is easy
Output:
Java is easy
7. Traversing String
Using for loop:
class Main{
public static void main(String args[]){
String s="Java";
for(int i=0;i<[Link]();i++)
{
[Link]([Link](i));
}
}
Output:
J
a
v
a
8. StringBuilder in Java
Because String is immutable, repeated modifications are slow.
Solution:
StringBuilder
It is mutable.
Example:
class Main{
public static void main(String args[]){
StringBuilder sb=new StringBuilder("Java");
[Link](" Programming");
[Link](sb);
}
}
Output:
Java Programming
StringBuilder Methods
append()
[Link]("Hello");
insert()
[Link](0,"Hi ");
delete()
[Link](0,2);
reverse()
[Link]();
STRING PROGRAMS
1. Reverse a String
class Main{
public static void main(String args[]){
String s="Java";
String rev="";
for(int i=[Link]()-1;i>=0;i--)
{
rev=rev+[Link](i);
}
[Link](rev);
}
Output:
avaJ
2. Palindrome String
Example:
madam
Program:
class Main{
public static void main(String args[]){
String s="madam";
String rev="";
for(int i=[Link]()-1;i>=0;i--)
{
rev+=[Link](i);
}
if([Link](rev))
[Link]("Palindrome");
else
[Link]("Not Palindrome");
}
Output:
Palindrome
3. Count Vowels
class Main{
public static void main(String args[]){
String s="education";
int count=0;
for(int i=0;i<[Link]();i++)
{
char ch=[Link](i);
if(ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u')
{
count++;
}
[Link](count);
}
Output:
5
4. Count Characters
class Main{
public static void main(String args[]){
String s="java";
int count[]=new int[256];
for(int i=0;i<[Link]();i++)
{
count[[Link](i)]++;
}
for(int i=0;i<256;i++)
{
if(count[i]>0)
[Link]((char)i+" "+count[i]);
}
5. Remove Duplicate Characters
class Main{
public static void main(String args[]){
String s="programming";
String result="";
for(int i=0;i<[Link]();i++)
{
char ch=[Link](i);
if([Link](ch)==-1)
{
result+=ch;
}
[Link](result);
}
Output:
progamin
6. Check Anagram
import [Link];
class Main{
public static void main(String args[]){
String a="listen";
String b="silent";
char x[]=[Link]();
char y[]=[Link]();
[Link](x);
[Link](y);
if([Link](x,y))
[Link]("Anagram");
else
[Link]("Not Anagram");
7. Count Words
class Main{
public static void main(String args[]){
String s="Java is powerful";
String arr[]=[Link](" ");
[Link]([Link]);
}
Output:
3
Important Interview Questions
1. Reverse a String
2. Check palindrome
3. Count vowels
4. Remove duplicate characters
5. Find duplicate characters
6. Check anagram
7. Reverse words
8. Find longest word
9. String vs StringBuilder
10. Difference between == and equals()
This covers Java Strings from basic concepts → memory → methods →
StringBuilder → interview programs.
1. year % 400 == 0):
2. print(f"{year} is a leap year")
3. else:
4. print(f"{year} is not a leap year")