Strings – Strings in Java are objects that are supported internally by a char array. Since arrays are immutable, and strings are also a type of exceptional array that holds characters, therefore, strings are immutable as well.
Integer Array – An array is a combination of the same type of variables. Likewise, a collection of integers (int) referred to by a common name is an Integer Array.
Problem Statement – Given a string, the task is to convert that string into an integer array.
Let us first go through few examples to make it more clear.
Examples:
Input : String : "1 23 456 7890" Output : Integer array : [1 23 456 7890]
Input : String : "[1,2,356,678,3378]" Output : Integer array : [1, 2, 356, 678, 3378]
There are numerous approaches to do the same; a few of them are listed below.
Methods:
- Using string.replaceAll() method
- Using string.split() method
Method 1 – Using string.replaceAll() method
The string.replaceAll() method takes two arguments, a regex, and the replacement values. This method will replace the given regex with the given replacement value, and after that, the split() method is used to split the string.
// Java Program to Convert String to Integer Array // Using string.replaceAll() method // Importing input output and utility classes import java.io.*;
import java.util.Arrays;
public class GFG {
public static void main(String[] args)
{
// declaring the string
String str = "[1,2,356,678,3378]" ;
// calling replaceAll() method and split() method on
// string
String[] string = str.replaceAll( "\\[" , "" )
.replaceAll( "]" , "" )
.split( "," );
// declaring an array with the size of string
int [] arr = new int [string.length];
// parsing the String argument as a signed decimal
// integer object and storing that integer into the
// array
for ( int i = 0 ; i < string.length; i++) {
arr[i] = Integer.valueOf(string[i]);
}
// printing string
System.out.print( "String : " + str);
// printing the Integer array
System.out.print( "\nInteger array : "
+ Arrays.toString(arr));
}
} |
String : [1,2,356,678,3378] Integer array : [1, 2, 356, 678, 3378]
Time Complexity: O(n)
Auxiliary Space: O(n)
Method 2 – Using string.split() method
The string.split() method is used to split the string into various sub-strings. Then, those sub-strings are converted to an integer using the Integer.parseInt() method and store that value integer value to the Integer array.
// Java Program to Convert String to Integer Array // Using string.split() method // Importing input output and utility classes import java.io.*;
public class GFG {
// Function for conversion
static int [] method(String str)
{
String[] splitArray = str.split( " " );
int [] array = new int [splitArray.length];
// parsing the String argument as a signed decimal
// integer object and storing that integer into the
// array
for ( int i = 0 ; i < splitArray.length; i++) {
array[i] = Integer.parseInt(splitArray[i]);
}
return array;
}
// main method
public static void main(String[] args)
{
// Bufferedreader declaration
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
// string declaration
String str = "1 23 456 7890" ;
int i;
// declaring the variable & calling the method with
// passing string as an argument
int [] array = method(str);
// printing the string
System.out.print( "\nString : " + str);
// printing the Integer array
System.out.print( "\nInteger array : [" );
for (i = 0 ; i < array.length; i++) {
System.out.print(array[i] + " " );
}
System.out.print( "]" );
}
} |
String : 1 23 456 7890 Integer array : [1 23 456 7890 ]
Time Complexity: O(n)
Auxiliary Space: O(n)