Como sabemos, char en Java toma 1 byte mientras que int toma 4 bytes. Entonces, si queremos que el número entero se convierta en carácter, entonces debemos encasillarlo porque los datos que residen en 4 bytes no pueden ingresar en un solo byte. Por lo tanto, antes de seguir adelante, los lectores deben estar bien familiarizados con el encasillado en Java.
Sugerencia: también se recomienda revisar la diferencia entre la conversión de tipos y la conversión de tipos en Java.
Hay muchas operaciones que se pueden calcular sobre strings pero no sobre caracteres, por lo que generalmente vemos en Java que se calculan muchas operaciones. Aquí, la entrada que se nos proporciona es un valor entero, por ejemplo, ‘ N’ y la tarea es convertir el número en caracteres.
Ilustraciones:
Input : N = 74254 Output : Seven four two five four
Input : N = 23 Output : Two three
Métodos:
- Uso de la caja del interruptor (enfoque ingenuo)
- Uso del concepto de encasillamiento (enfoque ingenuo)
- Usando el operador de módulo (enfoque óptimo)
Analicemos cada uno de los métodos enumerados anteriormente estableciendo su enfoque correspondiente e implementándolo con la ayuda de códigos Java limpios.
Método 1: Usar la caja del interruptor
Acercarse:
- Convierte un número en una string.
- Comience a recorrer la string e imprima la string de caracteres equivalente para el número.
Ejemplo:
Java
// Java Program to Convert Integer to Characters // Importing input output classes import java.io.*; // Main class public class GFG { // Method 1 // To convert number to a character static void NumbertoCharacter(String s) { // Iterating the number taking one digit at a time // via switch case using length() method for (int i = 0; i < s.length(); i++) { // Switch case // Reading digits one by one // using charAt() method switch (s.charAt(i)) { // Case 1 case '1': System.out.print("one "); // Break statement to hault // normal execution of the program break; // Case 2 case '2': System.out.print("two "); break; // Case 3 case '3': System.out.print("three "); break; // Case 4 case '4': System.out.print("four "); break; // Case 5 case '5': System.out.print("five "); break; // Case 6 case '6': System.out.print("six "); break; // Case 7 case '7': System.out.print("seven "); break; // Case 8 case '8': System.out.print("eight "); break; // Case 9 case '9': System.out.print("nine "); break; // Case 10 case '0': System.out.print("zero "); break; // Default case default: System.out.print("InValid "); break; } } } // Method 2 // Main driver method public static void main(String[] args) { // Custom input Integer int n = 12345; // Calling the above function NumbertoCharacter(n + ""); } }
one two three four five
Método 2: Uso del concepto de conversión de tipos
Aquí simplemente escribiremos explícitamente el tipo de datos y lo almacenaremos en el carácter. Como todos sabemos, hay una tabla ASCII que contiene un valor específico correspondiente a 256 símbolos del idioma inglés. Entonces, automáticamente almacenará el símbolo correspondiente correspondiente al dígito.
Ejemplo:
Java
// Java Program to Illustrate Integer to // Character Conversion // Using Concept of Type-casting // Importing required classes import java.util.*; // Class class GFG { // Main driver method public static void main(String[] args) { // Custom integer input int i = 97; // Type casting character to integer char ch = (char)i; // Print statement System.out.println(ch); } }
a
De manera similar, podemos hacer lo mismo agregando cero al valor entero y luego haremos lo mismo que hicimos en el ejemplo anterior, es decir, encasillaremos lo mismo anterior.
Ejemplo:
Java
// Java Program to Convert Integer to Character // of Integer Class Via Type-casting With Adding Zero import java.io.*; import java.lang.*; import java.util.*; class GFG { public static void main(String[] args) { int i = 64; char ch = (char)(i + '0'); System.out.println(ch); } }
p
Método 3: Usando el Operador Modulo
Procedimiento:
- Invertir el número.
- Iterar a través del número invertido de derecha a izquierda.
- Extraiga el último dígito usando el módulo, luego use un caso de cambio para obtener la palabra correspondiente.
- Mientras itera, divida el número por 10.
Ejemplo:
Java
// Java program to Convert Number in Characters // Using Modulo Operator // Importing input output classes import java.io.*; // Main class public class GFG { // Method 1 // To convert numbers to characters static void NumbertoCharacter(int n) { // Initially declaring and initializing // reverse of number and remainder to zero int rev = 0, r = 0; // If number is positive while (n > 0) { // For reversal of number // The remainder will give // the last digit of the number r = n % 10; rev = rev * 10 + r; n = n / 10; } while (rev > 0) { // Extract the first digit // of the reversed number r = rev % 10; // Match it with switch case switch (r) { case 1: System.out.print("one "); break; case 2: System.out.print("two "); break; case 3: System.out.print("three "); break; case 4: System.out.print("four "); break; case 5: System.out.print("five "); break; case 6: System.out.print("six "); break; case 7: System.out.print("seven "); break; case 8: System.out.print("eight "); break; case 9: System.out.print("nine "); break; case 0: System.out.print("zero "); break; // Default case when above switch cases holds false default: System.out.print("InValid "); break; } // Divide the number by 10 // to get the next number rev = rev / 10; } } // Method 2 // Main driver method public static void main(String[] args) { // Custom input integer int n = 12345; // Calling the above function(Method1) NumbertoCharacter(n); } }
one two three four five
Complejidad temporal: O(k), k es la longitud del número.
Complejidad del espacio: O(1)
Publicación traducida automáticamente
Artículo escrito por mayur_patil y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA