Convertir String en Int Array en Java

Rashmi Patidar 12 octubre 2023
  1. Convierta una cadena en un array Int usando el método replaceAll()
  2. Convierta una cadena en un array interna utilizando la biblioteca de secuencias Java 8
  3. Convertir String en Int Array usando StringTokenizer y Funciones
Convertir String en Int Array en Java

En el lenguaje Java, puede haber varios enfoques para pensar en el enunciado del problema.

Primero dividamos el enunciado del problema en dos partes.

  1. Convierta una cadena simple en el array de cadenas.
  2. Convierta un array de cadenas en un array int.

Aquí está la representación esquemática de los dos pasos anteriores:

cadena de diagrama de flujo a int en Java

Convierta una cadena en un array Int usando el método replaceAll()

Podemos usar el método replaceAll() de la clase String que toma dos argumentos, valores regex y replacement. Este método reemplazará la expresión regular dada con el valor de reemplazo dado. Y al final de las funciones de la cadena, se utiliza el método split(). Este método divide la cadena en función del carácter dado.

Debemos usar la función Integer.parseInt() cuando los valores se dividen y se recopilan en un array de cadenas. Dado que el método parseInt() arroja NumberFormatException, la declaración debe estar en un bloque try...catch para detectar la posible excepción.

A continuación se muestra el programa de muestra para demostrar la conversión de cadenas a un array int:

package stringToIntArray;

import java.util.Arrays;

public class ConvertStringToIntArray {
  public static void main(String... args) {
    String testString = "[1,2,356,678,3378]";

    String[] separatedStrings = testString.replaceAll("\\[", "").replaceAll("]", "").split(",");

    int[] intArray = new int[separatedStrings.length];

    for (int i = 0; i < separatedStrings.length; i++) {
      try {
        intArray[i] = Integer.parseInt(separatedStrings[i]);
      } catch (Exception e) {
        System.out.println("Unable to parse string to int: " + e.getMessage());
      }
    }

    System.out.println(Arrays.toString(intArray));
  }
}

Producción :

[1,2,356,678,3378]

Si testString tiene un valor como [1,2,356,678,3378,f], arrojará una excepción y la salida se verá así.

Unable to parse string to int: For input string: "f"
[1, 2, 356, 678, 3378, 0]

Convierta una cadena en un array interna utilizando la biblioteca de secuencias Java 8

En el programa siguiente, primero hemos tomado la función Arrays.stream(). Para proporcionar una secuencia a esto, hemos utilizado el método substring() de la clase String, que toma el primer y último parámetro de índice. Sobre la cadena devuelta se aplica la función split(), que divide la cadena dada basándose en un delimitador.

Sobre el flujo se aplica la función map(). Esta función toma cualquier función como argumento y devuelve la secuencia. Hemos dado la función trim() de la clase String que eliminó los espacios en blanco iniciales y siguientes. parseInt transforma la cadena dada recibida en int. toArray() vuelca los elementos int convertidos en un array.

package stringToIntArray;

import java.util.Arrays;

public class StringToIntUsingJava
8Stream {
  public static void main(String[] args) {
    String str = "[1, 2, 3, 4, 5]";

    int[] arr = Arrays.stream(str.substring(1, str.length() - 1).split(","))
                    .map(String::trim)
                    .mapToInt(Integer::parseInt)
                    .toArray();

    System.out.println(Arrays.toString(arr));
  }
}

Producción :

[1, 2, 3, 4, 5]

Convertir String en Int Array usando StringTokenizer y Funciones

Cree una instancia del objeto StringTokenizer usando su constructor StringTokenizer(). El constructor toma la cadena de entrada y el delimitador para formar una cadena tokenizada. Cree simultáneamente un array de String e int con tamaño como tokens en el String tokenizado.

El método countTokens() cuenta los tokens, que internamente omite el delimitador. hasMoreTokens() comprueba si hay algún token presente en la cadena del tokenizador. nextToken() recupera el siguiente token de la Cadena. Este método arroja NoSuchElementException si no hay tokens presentes en la cadena.

Itere para convertir los tokens String en int y recopilarlos en un array int.

package stringToIntArray;

import java.util.StringTokenizer;

public class StringToIntUsingStringTokenizer {
  public static void main(String[] args) {
    String testString = "[1,2,3,4]";
    StringTokenizer stk = new StringTokenizer(testString, "[,]");
    String[] strings = new String[stk.countTokens()];
    int[] integerArray = new int[stk.countTokens()];
    int i = 0;
    while (stk.hasMoreTokens()) {
      strings[i] = stk.nextToken();
      integerArray[i] = Integer.parseInt(strings[i]);
      i++;
    }
    for (int j = 0; j < integerArray.length; j++)
      System.out.println("number[" + j + "]=" + integerArray[j]);
  }
}

Producción :

number[0]=1
number[1]=2
number[2]=3
number[3]=4
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Artículo relacionado - Java String

Artículo relacionado - Java Array