Introdução
Neste laboratório, aprenderemos como analisar um valor de string como um inteiro decimal sem sinal usando o método parseUnsignedInt() em Java. Percorreremos a sintaxe, os parâmetros e os tipos de retorno do método, e aprenderemos como usá-lo com a ajuda de alguns exemplos.
Criar um novo arquivo Java
Primeiramente, precisamos criar um novo arquivo Java no diretório ~/project. Podemos fazer isso abrindo o terminal e digitando:
touch ~/project/UnsignedIntegerParser.java
Isso abrirá uma janela em branco do editor Nano.
Importar a classe Integer
Precisamos importar a classe Integer do pacote java.lang, pois ela contém o método parseUnsignedInt(). Podemos fazer isso adicionando o seguinte código dentro do nosso arquivo:
import java.lang.Integer;
Converter inteiro sem sinal de um valor string
Agora, vamos aprender como usar o método parseUnsignedInt(). Podemos chamar este método em um valor string e ele retornará seu objeto Integer decimal sem sinal equivalente. Aqui está um exemplo:
String s = "123";
int n = Integer.parseUnsignedInt(s); //Converts the passed string as unsigned integer
System.out.println(n);
A saída deste código será 123.
Tratamento de entrada inválida
Se fornecermos uma entrada inválida ao método parseUnsignedInt(), ele lançará uma NumberFormatException. Podemos tratar essa exceção usando um bloco try-catch. Aqui está um exemplo:
try {
String s = "-123";
int n = Integer.parseUnsignedInt(s); //Converts the passed string as unsigned integer
System.out.println(n);
} catch(NumberFormatException ex) {
System.out.println("Invalid input.");
}
Neste código, estamos tentando converter um inteiro negativo, o que é inválido. O método parseUnsignedInt() lançará uma NumberFormatException, que é capturada pelo bloco catch. A saída deste código será Invalid input..
Lendo entrada do console
Também podemos ler a entrada do console e convertê-la como um inteiro sem sinal. Aqui está um exemplo:
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a positive integer: ");
String s = scanner.nextLine();
try {
int n = Integer.parseUnsignedInt(s); //Converts the passed string as unsigned integer
System.out.println(n);
} catch(NumberFormatException ex) {
System.out.println("Invalid input.");
}
Neste código, estamos usando a classe Scanner para ler a entrada do console. Em seguida, convertemos a string de entrada como um inteiro sem sinal usando o método parseUnsignedInt(). Finalmente, estamos capturando quaisquer exceções que possam ocorrer durante a conversão da entrada.
Para executar este código no terminal, precisamos primeiro compilá-lo usando o comando:
javac UnsignedIntegerParser.java
Em seguida, podemos executá-lo usando o comando:
java UnsignedIntegerParser
Analisando inteiros sem sinal de uma lista de strings
Também podemos converter inteiros sem sinal de uma lista de strings. Aqui está um exemplo:
List<String> stringList = Arrays.asList("123", "456", "789");
for (String s : stringList) {
try {
int n = Integer.parseUnsignedInt(s); //Converts the passed string as unsigned integer
System.out.println(n);
} catch(NumberFormatException ex) {
System.out.println("Invalid input: " + s);
}
}
Neste código, estamos iterando sobre uma lista de strings e convertendo cada string como um inteiro sem sinal usando o método parseUnsignedInt(). Se a string não for um inteiro sem sinal válido, capturamos a exceção e imprimimos uma mensagem de erro.
Usando uma função auxiliar
Para evitar repetir o mesmo bloco try-catch toda vez que convertemos um inteiro sem sinal, podemos criar uma função auxiliar que recebe uma string como entrada e retorna um inteiro sem sinal. Aqui está um exemplo:
public static int parseUnsignedInt(String s) {
try {
return Integer.parseUnsignedInt(s); //Converts the passed string as unsigned integer
} catch(NumberFormatException ex) {
return -1; //Return -1 for invalid input
}
}
Neste código, estamos definindo uma função parseUnsignedInt() que recebe uma string como entrada e retorna um inteiro sem sinal. Se a entrada não for um inteiro sem sinal válido, a função retorna -1. Podemos então usar esta função para converter inteiros sem sinal sem nos preocuparmos com exceções. Aqui está um exemplo de como usar a função:
String s = "123";
int n = parseUnsignedInt(s);
System.out.println(n); //Output: 123
s = "-123";
int n = parseUnsignedInt(s);
System.out.println(n); //Output: -1
Manipulando inteiros sem sinal maiores
Se precisarmos converter inteiros sem sinal maiores, podemos usar o método parseUnsignedInt() da classe UnsignedInteger em vez da classe Integer. Este método retorna um long em vez de um int. Aqui está um exemplo:
String s = "4294967295"; //Maximum value of an unsigned 32-bit integer
long n = Long.parseUnsignedLong(s);
System.out.println(n); //Output: 4294967295
Usando Radix (Base Numérica)
Se quisermos converter uma string que representa um número em uma base diferente de 10, podemos usar o método parseInt() que recebe um parâmetro adicional radix (base). Aqui está um exemplo:
String s = "1101"; //Binary representation of 13
int n = Integer.parseUnsignedInt(s, 2); //Parse as binary
System.out.println(n); //Output: 13
Saindo do Nano e executando o código
Para sair do Nano, pressione Ctrl+X, depois pressione Y para salvar o arquivo e, em seguida, pressione Enter.
Para executar o código no terminal, podemos compilá-lo usando o comando:
javac UnsignedIntegerParser.java
Em seguida, podemos executá-lo usando o comando:
java UnsignedIntegerParser
Resumo
Neste laboratório, aprendemos como converter um valor de string como um Integer decimal sem sinal usando o método parseUnsignedInt() em Java. Também aprendemos como lidar com entradas inválidas, ler a entrada do console, converter inteiros sem sinal de uma lista de strings e usar funções auxiliares. Além disso, aprendemos como converter inteiros sem sinal maiores, usar a base (radix) e executar nosso código no terminal.



