In Java, a character array is a data structure used to store a sequence of characters. The characters are stored in contiguous memory locations and can be accessed by their index, similar to an array of integers or any other data type.
Declaring a Character Array
A character array can be declared in the following way:
char[] charArray;
This declares a reference variable called charArray that can store the memory address of a character array. To initialize the array and allocate memory for it, you can use the new keyword:
charArray = new char[10];
This creates an array with a length of 10, which means it can store 10 characters. The elements of the array are initialized to the default value of the char data type, which is the null character (‘\u0000’).
Alternatively, you can declare and initialize a character array in a single line:
char[] charArray = new char[10];
You can also initialize a character array with a set of characters by using the curly braces {} notation:
char[] charArray = {'a', 'b', 'c', 'd', 'e'};
This creates an array with a length of 5 and assigns the characters ‘a’, ‘b’, ‘c’, ‘d’, and ‘e’ to the elements at indexes 0 through 4, respectively.
Accessing Elements in a Character Array
You can access the elements of a character array using the array name followed by the element’s index in square brackets. For example:
charArray[0] = 'f';
This assigns the character ‘f’ to the element at index 0 of the charArray. You can also use the array elements to perform operations. For example:
System.out.println(charArray[0] + " " + charArray[1]);
This prints the characters at index 0 and 1 of the charArray, separated by a space.
Iterating Over a Character Array
You can use a for loop to iterate over the elements of a character array. For example:
Java
for ( int i = 0 ; i < charArray.length; i++) { System.out.println(charArray[i]); } |
This prints each element of the charArray on a new line.
Another way to iterate over a character array is to use the enhanced for loop (also known as the for-each loop):
Java
for ( char c : charArray) { System.out.println(c); } |
This also prints each element of the charArray on a new line.
Comparing Character Arrays
To compare two character arrays for equality, you can use the Arrays.equals() method:
Java
char [] charArray1 = { 'a' , 'b' , 'c' , 'd' , 'e' }; char [] charArray2 = { 'a' , 'b' , 'c' , 'd' , 'e' }; if (Arrays.equals(charArray1, charArray2)) { System.out.println( "The arrays are equal." ); } else { System.out.println( "The arrays are not equal." ); } |
This compares the elements of charArray1 and charArray2, and if all the elements are identical, it prints “The arrays are equal.” Otherwise, it prints “The arrays are not equal.”
Converting a String to a Character Array
You can convert a String to a character array using the toCharArray() method:
Java
String str = "Hello World" ; char [] charArray = str.toCharArray(); |
This creates a character array with the same characters as the string and assigns it to the charArray variable.
Converting a Character Array to a String
You can convert a character array to a String using the String constructor that takes a character array as an argument:
Java
char [] charArray = { 'H' , 'e' , 'l' , 'l' , 'o' , ' ' , 'W' , 'o' , 'r' , 'l' , 'd' }; String str = new String(charArray); |
This creates a new String object with the same characters as the charArray, and assigns it to the str variable.
Note that, while you can use the “==” operator to compare the references of two arrays, it will not compare the elements of the arrays. So if you want to compare the two arrays, you should use the Arrays.equals(arr1, arr2) method, which returns true if the two arrays are equal, and false otherwise.
copyOf() method from the Arrays class: This method creates a new array with the same length as the original array and copies the elements from the original array to the new array. It can be used to make a copy of a character array, which is useful when you want to make changes to the original array without affecting the original data.
Example of copyOf() method:
Java
char [] originalArray = { 'a' , 'b' , 'c' , 'd' , 'e' }; char [] copiedArray = Arrays.copyOf(originalArray, originalArray.length); |
Here, the originalArray is copied to the copiedArray. Now, you can make changes to the copiedArray without affecting the originalArray.
copyOfRange() method from the Arrays class: This method creates a new array with the specified range of elements from the original array and copies the elements from the original array to the new array. It can be used to make a copy of a specific range of elements in a character array.
Example of copyOfRange() method:
Java
char [] originalArray = { 'a' , 'b' , 'c' , 'd' , 'e' }; char [] copiedArray = Arrays.copyOfRange(originalArray, 1 , 4 ); |
Here, the elements of the originalArray are copied from index 1 to index 3 to the copiedArray.
When working with character arrays is that they are mutable, meaning their elements can be changed after they are created. Strings, on the other hand, are immutable, meaning their characters cannot be changed after they are created. If you need to change the characters in a string, you must create a new string with the desired characters.