Converter String em Int Array em Java
-
Converter String em Array Int usando o método
replaceAll()
- Converter string em matriz interna usando a biblioteca de fluxo Java 8
- Converter String em Array Int usando StringTokenizer e funções
Na linguagem Java, pode haver várias abordagens para refletir sobre a declaração do problema.
Vamos primeiro dividir a definição do problema em duas partes.
- Converta uma string simples no array String.
- Converta um array String em um array int.
Aqui está a representação esquemática das duas etapas acima:
Converter String em Array Int usando o método replaceAll()
Podemos usar o método replaceAll()
da classe String
que leva dois argumentos, valores regex
e replacement
. Este método substituirá a regex fornecida pelo valor de substituição fornecido. E no final das funções da cadeia, o método split()
é usado. Este método divide a String com base no caractere fornecido.
Devemos usar a função Integer.parseInt()
quando os valores são divididos e coletados em um array String. Como o método parseInt()
lança NumberFormatException
, a instrução deve estar em um bloco try...catch
para capturar a possível exceção.
Abaixo está o programa de amostra para demonstrar a conversão de strings para a matriz 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));
}
}
Resultado:
[1,2,356,678,3378]
Se testString
tiver o valor [1,2,356,678,3378,f]
, ele lançará uma exceção e a saída terá a seguinte aparência.
Unable to parse string to int: For input string: "f"
[1, 2, 356, 678, 3378, 0]
Converter string em matriz interna usando a biblioteca de fluxo Java 8
No programa abaixo, primeiro, pegamos a função Arrays.stream()
. Para fornecer um fluxo para isso, usamos o método substring()
da classe String
, que usa o primeiro e o último parâmetros de índice. Sobre a String retornada, a função split()
é aplicada, que divide a String fornecida com base em um delimitador.
Sobre o fluxo a função map()
é aplicada. Esta função recebe qualquer função como argumento e retorna o fluxo. Demos a função trim()
da classe String que eliminou os espaços em branco à esquerda e à direita. parseInt
transforma a string recebida em int. toArray()
despeja elementos inteiros convertidos em um 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));
}
}
Resultado:
[1, 2, 3, 4, 5]
Converter String em Array Int usando StringTokenizer e funções
Instancie o objeto StringTokenizer usando seu construtor StringTokenizer()
. O construtor pega a String de entrada e o delimitador para formar uma String tokenizada. Simultaneamente, crie um array de String e int com tamanho como tokens na String tokenizada.
O método countTokens()
conta os tokens, que internamente ignora o delimitador. hasMoreTokens()
verifica se há algum token presente na string do tokenizer. nextToken()
recupera o próximo token da String. Este método lança NoSuchElementException
se nenhum tokens estiver presente na String.
Faça a iteração para converter os tokens String em int e colete em um 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]);
}
}
Resultado:
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.
LinkedInArtigo relacionado - Java String
- Como converter a string Java em Byte
- Como converter Byte Array em Hex String em Java
- Como realizar a conversão de string em array de string em Java
- Como remover string de string em Java
- Comparar Strings em Java
- Gerar String Aleatória em Java