Programa Java para convertir una string en una array de enteros

Strings: las strings en Java son objetos que son compatibles internamente con una array de caracteres. Dado que las arrays son inmutables y las strings también son un tipo de array excepcional que contiene caracteres, las strings también son inmutables. 

Array de enteros: una array es una combinación del mismo tipo de variables. Del mismo modo, una colección de enteros (int) a la que se hace referencia con un nombre común es una array de enteros.

Declaración del problema: dada una string, la tarea es convertir esa string en una array de enteros

Primero veamos algunos ejemplos para que quede más claro.

Ejemplos:

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]

Existen numerosos enfoques para hacer lo mismo; algunos de ellos se enumeran a continuación.

Métodos:

  1. Usando el método string.replaceAll()
  2. Usando el método string.split()

Método 1 – Usando el método string.replaceAll()  

El método string.replaceAll() toma dos argumentos, una expresión regular y los valores de reemplazo. Este método reemplazará la expresión regular dada con el valor de reemplazo dado y, después de eso, se usa el método split() para dividir la string.

Java

// 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));
    }
}
Producción

String : [1,2,356,678,3378]
Integer array : [1, 2, 356, 678, 3378]

Método 2 – Usando el método string.split()

El método string.split() se usa para dividir la string en varias substrings. Luego, esas substrings se convierten en un número entero mediante el método Integer.parseInt() y almacenan ese valor entero en la array Integer.

Java

// 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("]");
    }
}
Producción

String : 1 23 456 7890
Integer array : [1 23 456 7890 ]

Publicación traducida automáticamente

Artículo escrito por manastole01 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *