Converti String in Int Array in Java
-
Converti una stringa in un array interno usando il metodo
replaceAll()
- Converti stringa in array Int utilizzando Java 8 Stream Library
- Converti String in Array Int usando StringTokenizer e funzioni
Nel linguaggio Java, ci possono essere diversi approcci per riflettere sull’affermazione del problema.
Per prima cosa suddividiamo l’affermazione del problema in due parti.
- Convertire una semplice stringa nell’array di stringhe.
- Convertire un array String in un array int.
Ecco la rappresentazione schematica dei due passaggi precedenti:
Converti una stringa in un array interno usando il metodo replaceAll()
Possiamo usare il metodo replaceAll()
della classe String
che accetta due argomenti, i valori regex
e replacement
. Questo metodo sostituirà la regex data con il valore di sostituzione specificato. E alla fine delle funzioni a catena, viene utilizzato il metodo split()
. Questo metodo divide la stringa in base al carattere fornito.
Dovremmo usare la funzione Integer.parseInt()
quando i valori vengono suddivisi e raccolti in un array String. Poiché il metodo parseInt()
genera NumberFormatException
, l’istruzione dovrebbe essere in un blocco try...catch
per catturare la possibile eccezione.
Di seguito è riportato il programma di esempio per dimostrare la conversione di stringhe in int array:
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));
}
}
Produzione:
[1,2,356,678,3378]
Se testString
ha valore come [1,2,356,678,3378,f]
, verrà generata un’eccezione e l’output sarà simile a questo.
Unable to parse string to int: For input string: "f"
[1, 2, 356, 678, 3378, 0]
Converti stringa in array Int utilizzando Java 8 Stream Library
Nel programma seguente, per prima cosa, abbiamo preso la funzione Arrays.stream()
. Per fornire un flusso a questo, abbiamo usato il metodo substring()
della classe String
, che accetta il primo e l’ultimo parametro di indice. Sulla stringa restituita viene applicata la funzione split()
, che divide la stringa data in base a un delimitatore.
Sul flusso viene applicata la funzione map()
. Questa funzione accetta qualsiasi funzione come argomento e restituisce il flusso. Abbiamo fornito la funzione trim()
della classe String che eliminava gli spazi bianchi iniziali e successivi. parseInt
trasforma la stringa data ricevuta in int. toArray()
scarica gli elementi int convertiti in 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));
}
}
Produzione:
[1, 2, 3, 4, 5]
Converti String in Array Int usando StringTokenizer e funzioni
Istanziare un oggetto StringTokenizer usando il suo costruttore StringTokenizer()
. Il costruttore accetta la stringa di input e il delimitatore per formare una stringa tokenizzata. Crea simultaneamente una matrice di String e int con dimensioni pari a token nella String con token.
Il metodo countTokens()
conta i token, che internamente salta il delimitatore. hasMoreTokens()
controlla se sono presenti token nella stringa tokenizer. nextToken()
recupera il token successivo dalla stringa. Questo metodo genera NoSuchElementException
se non sono presenti token nella stringa.
Iterate per convertire i token String in int e raccoglieteli in 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]);
}
}
Produzione:
number[0]=1
number[1]=2
number[2]=3
number[3]=4
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.
LinkedInArticolo correlato - Java String
- Converti array di byte in stringa esadecimale in Java
- Converti stringa Java in byte
- Eseguire la conversione di array da stringa a stringa in Java
- Rimuovi sottostringa dalla stringa in Java
- Confronta le stringhe in Java
- Genera stringa casuale in Java