Declaring a String array
As explained in Arrays section, you can declare a String array like this:
package com.ibytecode.strings.arrays; public class StringArray { private String[] fruits; //instance variable initialized to null }
Then later on, you can write and call a method which creates an array, and initializes the elements, like this:
void initializeArray() { fruits = new String[5]; fruits[0] = "Apple"; fruits[1] = "Orange"; fruits[2] = "Banana"; fruits[3] = "Grapes"; fruits[4] = "Mango"; }
Declaring and creating a String array with an initial size
You can declare and create a String array like this:
package com.ibytecode.strings.arrays; public class StringArray { private String[] fruits = new String[5]; public static void main(String[] args) { StringArray obj = new StringArray(); obj.initializeArray(); } void initializeArray() { fruits[0] = "Apple"; fruits[1] = "Orange"; fruits[2] = "Banana"; fruits[3] = "Grapes"; fruits[4] = "Mango"; } }
In the above example, we created a String array named fruits with an initial size 5.
Later, in a method initializeArray() we initialized the array elements.
This picture demonstrates the result of line 4.
When a String array is declared and created, its element gets default value ‘null’.
Declaring, creating and initializing a String array
You can declare, create and initialize a String array in one step.
String fruit = "Pineapple"; String[] fruits = {"Apple", "Orange", "Banana", fruit, "Strawberry"};
How this works?
- Creates a String object “Pineapple” in the memory and fruit referencing to it.
- Declares a String array reference variable fruits.
- Creates a String array object in the memory with a length of five.
- Size of an array is determined by the number of comma-separated elements between the curly braces.
- Creates four String objects for “Apple”, “Orange”, “Banana” and “Strawberry” and assigns its references to the array indices (0, 1, 2 and 4). Assigns already created String object for “Pineapple” to the index 3.
- Assigns the String array object to array reference variable fruits.
Creating an anonymous String array
You can declare, create and initialize a String array object in one line.
String fruit = "Pineapple"; String[] fruits = new String[]{"Apple", "Orange", "Banana", fruit, "Strawberry"};
This is similar to the previous method but this method is useful when you want to create a just-in-time String array to use as an argument to a method that takes a String array parameter.
Example
package com.ibytecode.strings.parampassing; public class StringArray { public static void main(String[] args) { method(new String[]{"Apple", "Orange"}); } static void method(String[] fruits) { //Use String[] array here. } }
When you use this method size should not be specified.
String[] fruits = new String[2] {“Apple”, “Orange”}; //ERROR
Iterating through a String array
Using length variable
You can use any loop (for, while, do-while) to iterate through a String array starting from first element till array’s length which you will get by using arrayName.length
package com.ibytecode.strings.arrays; public class IteratingStringArray { public static void main(String[] args) { String fruit = "Pineapple"; String[] fruits = {"Apple", "Orange", "Banana",fruit,"Strawberry"}; //for loop for(int i = 0; i < fruits.length; i++) System.out.println("Fruit at index " + i + ": " + fruits[i]); //while loop int i = 0; while(i < fruits.length) { System.out.println("Fruit at index " + i + ": " + fruits[i]); i++; } } }
Fruit at index 0: Apple
Fruit at index 1: Orange
Fruit at index 2: Banana
Fruit at index 3: Pineapple
Fruit at index 4: Strawberry
Enhanced for loop
This is a specialized for loop introduced in Java SE 6 to loop through an array or collection.
It has two parts for(declaration : expression)
declaration | newly declared variable of type String. |
expression | this should be an array or collection variable name or a method call that returns a String array. |
Syntax:
for(type variable : arrayReferenceName)
{
//Use variable
}
where, type of the variable should be the type of the array.
package com.ibytecode.strings.arrays; public class IteratingStringArray { public static void main(String[] args) { String fruit = "Pineapple"; String[] fruits = {"Apple", "Orange", "Banana",fruit,"Strawberry"}; for(String s: fruits) System.out.print(s + “ ”); } }
Apple Orange Banana Pineapple Strawberry