×

Java Strings

String class is the most used class in Java programming language. The string is the sequence of characters, which is treated as objects in Java.

Creating String objects

We create String objects using a new operator or by using string literal values within double quotes. But there is a big difference between them about how these objects are stored and referred to, by Java.

Example 1.

public class ExampleString {
public static void main(String[] args) {
StrObj stringClass = new StrObj();
System.out.println(stringClass.str1 == stringClass.str2);
}
}
class StrObj {
String str1 = new String("INDIA");
String str2 = new String("INDIA");
}

Output:

false

String objects created using new operator always refer to separate objects, even if they store the same sequence of characters.

Example 2.

public class ExampleString {
String str1 = "INDIA";
String str2 = "INDIA";
public static void main(String[] args) {
ExampleString stringClass = new ExampleString();
System.out.println(stringClass.str1==stringClass.str2);
}
}

Output:

true

When the string object is created using literal method, JVM searches for the same sequence of character in the string pool. If it finds the same sequence, JVM does not create the string object but make it refer to the same string previously created. Hence str2 will point to the object created by the str1 that’s why the result is true here.

We can also create a string object using

System.out.println("INDIA");

If the matching value is found in the string pool, the value is reused. If the matching value is not found in the string pool, JVM has first to create it and then place it to the spring pool.

Let's count some string objects:

1 String star = new String("Star");
2 String star2 = "Star";
3 System.out.println("Star");
4 System.out.println("Moon");
5 System.out.println("Moon" == "star");
6 String star1 = new String("Star");

Line 1 creates a String object having value “Star” in heap memory.

Line 2 creates a String object and place it to the string pool.

Line 3 does not create String object since the same value is stored in the string pool.

Line 4 creates a String object having value “Moon” and place it to the string pool.

Line 5 creates String object since “star”  has a lower case ‘s’ and it is treated as a different value.

Line 6 creates a String object having value “Star” in heap memory.

String class is Immutable

String class is immutable, and it means that the object of this class can not be modified.

This is for performance reason, and the JVM can reuse this object which led to low memory overhead and good performance.

String class is made immutable by following three steps.

  • The value of the String object is stored in the char array (char value[]) and it is marked final so that it cannot be modified or re-initialized.
  • The length of the array is fixed and cannot be increased once initialized.
  • All methods defined in the string class do not modify the array value instead, they return a new String object.

Methods of the String Class

charAt(): It is used to retrieve a character at a specified index of a String :

Example:

public class Myclass{ 
public static void main(String args[]){ 
String country = new String("India");
System.out.println(country .charAt(0)); //  returns “I”
System.out.println(country .charAt(3)); // returns “i”
    } 
}

Output:

I
i

This method may throw a runtime exception if we seek the position out of the range

Example:

System.out.println(country.charAt(5));

the exception is java.lang.StringIndexOutOfBoundsException.

indexOf():  This method search for the occurrence of a character or a String, if it found in the target String, it returns the first matching position else -1.

Example :

public class MyClass {
public static void main(String[] args) {
String country = "INDIA";
System.out.println(country.indexOf('D')); // prints 2
System.out.println(country.indexOf("I")); // prints 0
}
}

Output:

2
0

By default, JVM starts searching from index position 0 if we want to start searching at some specific position we may pass it like

public class MyClass {
public static void main(String[] args) {
String country = "INDIA";
System.out.println(country.indexOf('I', 2)); //prints 3
}
}

Output:

3

substring(): It returns the substring of the targeted string. It is of two kinds,

Example :

public class MyClass {
public static void main(String[] args) {
String country = "INDIA";
String sub = country.substring(2);  // prints DIA
String sub1 = country.substring(2,4); // prints DI
System.out.println(sub);
System.out.println(sub1);
}
}

Output:

DIA
DI

The first output will print from seeking the position to the end of the given string.

The second will print from seeking position to the last value-1(does not include the character at the end position).

It should be noted that the total length of the resulted string is

(end Index) - (beginning Index).

trim(): This method removes the leading and trailing whitespace and returns a new string.

Example :

public class MyClass {
public static void main(String[] args) {
String str = "  This Is Text    ";
System.out.println(str);       // prints “  This Is Text    ”
System.out.print(str.trim()); // prints “This Is Text”
}
}

Output:

This Is Text    
This Is Text

replace('a', 'A'): This method replaces all the specified occurrence of a char value with another value. We can also replace String with another String.

Example :

public class MyClass {
public static void main(String[] args) {
String country = "INDIA";
System.out.println(country.replace('I', 'A'));  // prints ANDAA
System.out.println(country.replace("DI", "LI")); //prints INLIA
}
}

Output:

ANDAA
INLIA

length() : length() method  is used to retrieve the length of a String.

Example :

public class MyClass {
public static void main(String[] args) {
System.out.println("India".length()); // prints 5
}
}

Output:

5

Equality of Strings

equals() method is used to compare the equality of two string. This method returns true if the object being compared to a string object and have the same characters sequence.

public class MyClass {
public static void main(String[] args) {
String v1 = new String("INDIA");
String v2 = new String("INDIA");
System.out.println(v1.equals(v2));     //prints true
System.out.println(v1 == v2);     //prints false
}
}

Output:

true
false

String Concatenation

A string can be concatenated using concat() or “+” operator.

str1.concat(str2)

or like

"INDIA".concat(" IS A COUNTRY") // prints INDIA IS A COUNTRY

or like

"INDIA"+"My Country" // prints INDIA My COUNTRY

Example:

public class MyClass {
public static void main(String[] args) {
String str1 = new String("INDIA");
String str2 = new String(" USA");
System.out.println(str1.concat(str2));
System.out.println( "INDIA".concat(" IS A COUNTRY"));   // prints INDIA IS A COUNTRY
System.out.println( "INDIA"+" Is My Country"); // prints INDIA My COUNTR
}
}

Output:

INDIA USA
INDIA IS A COUNTRY
INDIA Is My Country

Java String Methods List


Related Topics

Character Array in Java

A character array is an array which holds values of character data types. It is different from a string array. The character array, string, and StringBuffer classes in the Java...

4 minutes read.

Equilibrium Index of an Array in Java

An array's equilibrium index is the condition where the sum of items with lower and higher indices equals. For example, an array A=[-4,5 2,6,-5] where: a[0]=-4, a[1]=5, a[2]=2, a[3]=6, a[4]=-5 Now according...

4 minutes read.

Java Abstraction

Java Abstraction Abstraction is an advanced feature of Java to make it transparent. The main motive behind the abstraction is to deal with ideas, not with events. Abstraction is a process...

4 minutes read.

Java Integer toUnsignedLong() method

The toUnsignedLong() method of Java Integer class returns a long value by simply converting the given argument to long after an unsigned conversion. Syntax public static long toUnsignedLong (int  x) Parameters The parameter ‘x’...

1 minute read.

Java vs Scala

Java : Java is an object oriented programming language. It is also known as multi threaded language. It was designed by James gosling in the year 1995. We can also say...

4 minutes read.

Java Boolean logicalOr() Method

The logicalOr() method of Java Boolean class returns the result of implementing logical OR operation on the specified Boolean operands. Syntax: public static boolean logicalOr (boolean a, boolean b) Parameters: The parameters ‘a’ and...

2 minutes read.

How to Convert Hexadecimal to Decimal in Java

How to Convert Hexadecimal to Decimal in Java There are two methods to convert Hexadecimal to Decimal: Using parseInt() method Using user-defined logic Using Integer.parseInt() method It is a static method of...

2 minutes read.

Difference between String, StringBuffer and StringBuilder in java

What is a string in Java? Strings are a collection of characters that are commonly used in Java programming. Strings are regarded as objects in the Java programming language. “String” is a...

4 minutes read.

Java String length() method

Java String length() method returns length of the characters in a String. Syntax: public int length() Returns It returns length of the characters Java String length() method example 1          public class JavaStringLengthEx1  ...

1 minute read.

Polygonal Number in Java

What does a Java Polygonal Number Mean? In mathematics, a polygonal number refers to a number that is expressed through dots or pebbles arranged in a regular polygonal pattern. Alphas are...

4 minutes read.

Java Transient

Java Transient In Java, Serialization is used to convert an object into a stream of the byte. The byte stream consists of the data of the instance as well as the...

3 minutes read.

Java Boolean Class

The Boolean class wraps a value of the Boolean primitive in an object. Its object contains only a single field whose type is Boolean. Boolean Methods: This class contains several different methods...

2 minutes read.

Exception Handling in Java

Before looking at how exceptions are handled in java, it is necessary to see what an exception is. What is Exception? Whenever a program is written, errors are encountered. Some of these...

6 minutes read.

POJO in Java

Plain old Java Object, in short, is called POJO in Java. POJO is an everyday object that is not subject to any specific limitations. We can use POJO in any Java...

3 minutes read.

Java For Loop

A for loop is used to execute a set of statements for a fixed number of times. It takes the following form: for (initialization; condition; update) { statements; } The for loop defines...

2 minutes read.

Java String intern() method

Java String intern() method returns canonical representation for the String Object. syntax: public String intern() Return: It returns a interned String that to be a pool of unique String. Java String intern() Example 1 public class...

2 minutes read.

Java Return Keyword

The return keyword in Java is used to end a method's execution. the caller receives the return, followed by the appropriate value. The return type of the method, such as...

3 minutes read.

Java String replaceAll() method

Java String replaceAll() method returns a String replacing all the sequence of characters matching regular expression i.e regex and replacement string. Syntax: public String replaceAll(String regex, String replacement) Parameters: regex : regular expression replacement :...

1 minute read.

Java logger

Logging is a crucial Java feature that aids developers in identifying issues. The logging methodology is included with Java as the programming language. It offers the Logging API, which debuted...

7 minutes read.

Java String toCharArray() method

Java String toCharArray() method converts current String into character array. Syntax: public char[] toCharArray() Returns: It returns a character array Java String toCharArray() method example 1 import java.util.Arrays; public class JavaStringToCharArrayEx1 {           public static...

2 minutes read.