Conversão de String Unsigned para Long em Java

JavaBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá sobre o método toUnsignedString() do Java, que é usado para converter um valor long em um objeto String decimal sem sinal (unsigned). Você aprenderá como usar o método, quais argumentos ele recebe e o que ele retorna.

Inicializando um valor long

Primeiramente, criaremos um valor long e o inicializaremos com alguns dados. Usaremos este valor em exemplos posteriores para convertê-lo em uma string decimal sem sinal (unsigned) usando o método toUnsignedString().

long longValue = 3000000000L;

Convertendo long para String Decimal Sem Sinal

Agora, usaremos o método toUnsignedString() para converter nosso valor long inicializado em uma String decimal sem sinal (unsigned).

String unsignedString = Long.toUnsignedString(longValue);

Imprimindo o Resultado

Finalmente, imprimiremos os resultados da nossa String decimal sem sinal convertida no console.

System.out.println("Unsigned String value: " + unsignedString);

Aqui está o código completo para as etapas acima:

public class LongToUnsignedString {
    public static void main(String[] args) {
        long longValue = 3000000000L;
        String unsignedString = Long.toUnsignedString(longValue);
        System.out.println("Unsigned String value: " + unsignedString);
    }
}

Quando você executar o código, verá a seguinte saída:

Unsigned String value: 3000000000

Tratamento de Valores Long Negativos

Em Java, os tipos de dados long também podem armazenar valores negativos. Nesta etapa, veremos o que acontece quando tentamos converter um valor negativo em uma String decimal sem sinal (unsigned).

long longNegative = -123456789L;
String unsignedString = Long.toUnsignedString(longNegative);

Imprimindo o Resultado para Valores Long Negativos

Agora que temos o valor da String decimal sem sinal, tentaremos imprimi-lo no console usando o método System.out.println().

System.out.println("Unsigned Decimal String value: " + unsignedString);

Aqui está o código completo:

public class LongToUnsignedString {
    public static void main(String[] args) {
        long longNegative = -123456789L;
        String unsignedString = Long.toUnsignedString(longNegative);
        System.out.println("Unsigned Decimal String value: " + unsignedString);
    }
}

A saída terá esta aparência:

Unsigned Decimal String value: 18446743950276013727

Conversão de Valor Long Definida pelo Usuário

Nesta etapa, criaremos um valor long definido pelo usuário e o converteremos em uma String decimal sem sinal usando o método toUnsignedString().

Para fazer isso, criaremos um objeto scanner para ler do console e, em seguida, armazenaremos o valor escaneado em uma variável long.

Scanner scanner = new Scanner(System.in);
System.out.print("Enter a number: ");
long userLong = scanner.nextLong();

Depois disso, converteremos o valor long definido pelo usuário em uma string decimal sem sinal usando o método toUnsignedString().

String unsignedString = Long.toUnsignedString(userLong);

Finalmente, imprimiremos o valor convertido no console.

System.out.println("Unsigned String value: " + unsignedString);

Aqui está o código completo:

import java.util.Scanner;

public class LongToUnsignedString {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a number: ");
        long userLong = scanner.nextLong();
        String unsignedString = Long.toUnsignedString(userLong);
        System.out.println("Unsigned String value: " + unsignedString);
    }
}

Quando você executar o código, será solicitado que você insira um número no console. Depois de inserir um valor, o programa o converterá em um valor String decimal sem sinal e o imprimirá no console.

Tratamento de Entrada Inválida

Nesta etapa, modificaremos o código da etapa anterior para lidar com entradas inválidas do usuário.

Primeiro, envolveremos o código da etapa 6 em um bloco try-catch para lidar com quaisquer exceções que possam ocorrer devido a entradas inválidas do usuário.

try {
    Scanner scanner = new Scanner(System.in);
    System.out.print("Enter a number: ");
    long userLong = scanner.nextLong();
    String unsignedString = Long.toUnsignedString(userLong);
    System.out.println("Unsigned String value: " + unsignedString);
} catch (InputMismatchException exception) {
    System.out.println("Invalid input: Please enter a valid long value.");
}

O bloco try contém o mesmo código da etapa 6 para ler a entrada do usuário, convertê-la em uma String decimal sem sinal e imprimi-la no console.

O bloco catch captura qualquer InputMismatchException que possa ocorrer devido a uma entrada inválida do usuário e imprime uma mensagem de erro no console, indicando que a entrada não era um valor long válido.

Aqui está o código completo:

import java.util.InputMismatchException;
import java.util.Scanner;

public class LongToUnsignedString {
    public static void main(String[] args) {
        try {
            Scanner scanner = new Scanner(System.in);
            System.out.print("Enter a number: ");
            long userLong = scanner.nextLong();
            String unsignedString = Long.toUnsignedString(userLong);
            System.out.println("Unsigned String value: " + unsignedString);
        } catch (InputMismatchException exception) {
            System.out.println("Invalid input: Please enter a valid long value.");
        }
    }
}

Quando você executa o código e insere uma entrada inválida, o programa imprimirá uma mensagem de erro no console. Se você inserir um valor long válido, o programa o converterá em um valor String decimal sem sinal e o imprimirá no console.

Resumo

Neste laboratório, você aprendeu sobre o método toUnsignedString() do Java, usado para converter um tipo de dado long em uma String decimal sem sinal. Você também aprendeu com exemplos como usar este método, o que ele recebe como argumento e o que ele retorna.

Você aprendeu como lidar com entradas inválidas para valores long definidos pelo usuário e como lidar com valores long negativos e imprimi-los no console em sua representação String decimal sem sinal.