Konvertieren von String in Int-Array in Java

Rashmi Patidar 15 Februar 2024
  1. Konvertieren von einen String mit der Methode replaceAll() in ein Int-Array
  2. Konvertieren von einen String mithilfe der Java 8-Stream-Bibliothek in ein Int-Array
  3. Konvertieren von einen String mit einem StringTokenizer und Funktionen in ein Int-Array
Konvertieren von String in Int-Array in Java

In der Java-Sprache kann es verschiedene Ansätze geben, um über die Problemstellung nachzudenken.

Teilen wir die Problemstellung zunächst in zwei Teile.

  1. Konvertieren Sie einen einfachen String in das String-Array.
  2. Konvertieren Sie ein String-Array in ein int-Array.

Hier ist die schematische Darstellung der beiden oben genannten Schritte:

FlussdiagrammZeichenkette zu int in Java

Konvertieren von einen String mit der Methode replaceAll() in ein Int-Array

Wir können die Methode replaceAll() der Klasse String verwenden, die zwei Argumente akzeptiert: die Werte regex und replace. Diese Methode ersetzt den angegebenen regulären Ausdruck durch den angegebenen Ersetzungswert. Und am Ende der Kettenfunktionen wird die Methode split() verwendet. Diese Methode teilt den String basierend auf dem angegebenen Zeichen auf.

Wir sollten die Funktion Integer.parseInt() verwenden, wenn die Werte aufgeteilt und in einem String-Array gesammelt werden. Da die Methode parseInt() NumberFormatException auslöst, sollte sich die Anweisung in einem Block try...catch befinden, um die mögliche Ausnahme abzufangen.

Unten finden Sie ein Beispielprogramm, um die Konvertierung von Zeichenketten in ein int-Array zu demonstrieren:

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));
  }
}

Ausgabe:

[1,2,356,678,3378]

Wenn testString den Wert [1,2,356,678,3378,f] hat, wird eine Ausnahme ausgelöst, und die Ausgabe sieht folgendermaßen aus.

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

Konvertieren von einen String mithilfe der Java 8-Stream-Bibliothek in ein Int-Array

Im folgenden Programm haben wir zunächst die Funktion Arrays.stream() übernommen. Um einen Stream dafür bereitzustellen, haben wir die Methode substring() der Klasse String verwendet, die den ersten und den letzten Indexparameter verwendet. Über den zurückgegebenen String wird die Funktion split() angewendet, die den angegebenen String basierend auf einem Trennzeichen aufteilt.

Über den Stream wird die Funktion map() angewendet. Diese Funktion nimmt eine beliebige Funktion als Argument und gibt den Stream zurück. Wir haben die Funktion trim() der String-Klasse angegeben, mit der die führenden und nachfolgenden Leerzeichen entfernt wurden. parseInt transformiert den angegebenen String in int. toArray() speichert konvertierte int-Elemente in ein 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));
  }
}

Ausgabe:

[1, 2, 3, 4, 5]

Konvertieren von einen String mit einem StringTokenizer und Funktionen in ein Int-Array

Instanziieren Sie das StringTokenizer-Objekt mit seinem Konstruktor StringTokenizer(). Der Konstruktor verwendet die EingabeZeichenkette und das Trennzeichen, um eine tokenisierte Zeichenkette zu bilden. Erstellen Sie gleichzeitig ein Array aus String und int mit der Größe als Token in der tokenisierten Zeichenkette.

Die Methode countTokens() zählt die Token, wodurch das Trennzeichen intern übersprungen wird. hasMoreTokens() prüft, ob im Tokenizer-String Token vorhanden sind. nextToken() ruft das nächste Token aus dem String ab. Diese Methode löst NoSuchElementException aus, wenn im String keine Token vorhanden sind.

Iterieren Sie, um die String-Token in int zu konvertieren und in einem int-Array zu sammeln.

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]);
  }
}

Ausgabe:

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

Verwandter Artikel - Java String

Verwandter Artikel - Java Array