Java String array is used to hold fixed number of Strings. String array is very common in simple java programs, specially among beginners to java and to test some specific scenarios. Even java main method argument is string array - public static void main(String[] args)
. So today we will look into different aspects of java string array with example programs.
Let’s go over java string array example programs now.
Below code snippet shows different ways for string array declaration in java.
String[] strArray; //declare without size
String[] strArray1 = new String[3]; //declare with size
Note that we can also write string array as String strArray[]
but above shows way is the standard and recommended way. Also in the above code, strArray
is null
whereas strArray1
value is [null, null, null]
.
Let’s look at different ways to initialize string array in java.
//inline initialization
String[] strArray1 = new String[] {"A","B","C"};
String[] strArray2 = {"A","B","C"};
//initialization after declaration
String[] strArray3 = new String[3];
strArray3[0] = "A";
strArray3[1] = "B";
strArray3[2] = "C";
All the three string arrays will have same values. However if you will call equals
method on them, it will return false.
System.out.println(strArray1.equals(strArray2)); // false
System.out.println(Arrays.toString(strArray1).equals(Arrays.toString(strArray2)));// true
The reason is that array are Objects and Object class implements equals() method like below.
public boolean equals(Object obj) {
return (this == obj);
}
Second statement is true because when converted to String, their values are same and String class equals() method implementation check for values. For more details, please check String class API documentation.
We can iterate over string array using java for loop or java foreach loop.
String[] strArray2 = {"A","B","C"};
for (int i = 0; i < strArray2.length; i++) {
System.out.print(strArray2[i]);
}
for (String str : strArray2) {
System.out.print(str);
}
We can use for loop to search for an string in the array, below is a simple example for that.
package com.journaldev.stringarray;
public class JavaStringArrayExample {
public static void main(String[] args) {
String[] strArray = { "A", "B", "C" };
boolean found = false;
int index = 0;
String s = "B";
for (int i = 0; i < strArray.length; i++) {
if(s.equals(strArray[i])) {
index = i; found = true; break;
}
}
if(found)
System.out.println(s +" found at index "+index);
else
System.out.println(s +" not found in the array");
}
}
Notice the use of break keyword to get out of the loop as soon as we found the string.
We can implement our own sorting algorithm, or we can use Arrays class sorting method.
String[] vowels = {"a","i","u","e","o"};
System.out.println("Before sorting "+Arrays.toString(vowels));
Arrays.sort(vowels);
System.out.println("After sorting "+Arrays.toString(vowels));
Output of above code snippet will be:
Before sorting [a, i, u, e, o]
After sorting [a, e, i, o, u]
Note that String implements Comparable interface, so it works for natural sorting. Incase you want to sort by some other way, you can use Arrays.sort()
overloaded method by passing a Comparator. Learn about these sorting techniques at Comparable and Comparator in java.
We can convert String to string array using it’s split()
method. It’s useful when you get a single string as input with values separated using delimiter character.
String str = "a,e,i,o,u";
String[] vowels = str.split(",");
System.out.println(Arrays.toString(vowels)); //[a, e, i, o, u]
We can use Arrays.toString()
method to convert String array to String. Note that array doesn’t implement toString()
method, so if you will try to get it’s string representation then you will have to rely on Arrays class, or else write your own custom code.
String[] vowels = { "a", "e", "i", "o", "u" };
System.out.println(vowels);
System.out.println(Arrays.toString(vowels));
Output will be like below.
[Ljava.lang.String;@3d04a311
[a, e, i, o, u]
The first output is because of Object class toString() implementation like below.
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
We can get a list representation of string array using Arrays.toList()
method. Note that this list is backed by the array and any structural modification will result in java.lang.UnsupportedOperationException
.
String[] vowels = { "a", "e", "i", "o", "u", "a", "o" };
List<String> vowelsList = Arrays.asList(vowels);
System.out.println("vowelsList = "+vowelsList);
//vowelsList.add("x"); //java.lang.UnsupportedOperationException
vowelsList.set(0, "x"); //allowed because no structural modification
System.out.println("vowelsList = "+vowelsList);
That’s all for java string array. Reference: Arrays Oracle Documentation
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
While we believe that this content benefits our community, we have not yet thoroughly reviewed it. If you have any suggestions for improvements, please let us know by clicking the “report an issue“ button at the bottom of the tutorial.
Thanks Mr.Pankaj for such a nice website and knowledge shared by You… Thank You So Much…
- Nilesh M
What’s up bother. I do like the tutorial. I suspect the String class is one of the most used classes in Java by programmers. javacodedepot.com
- Seymour