Tengo una tarea en la que tengo que imprimir cada dígito mientras uso un bucle for y estoy muy confundido. Sé que el código que he escrito es MUY incorrecto por muchas razones, pero tengo muchos problemas para unir las diversas habilidades que hemos estado aprendiendo. ¿Cómo puedo arreglar mi código para que 365 se imprima como 3 6 5 ?
class Main { method1(365); public static void main(String[] args) { } String number = String.valueOf(num); public int method1(int num) { for (int i = 0; i < number.length(); i++) { int j = Character.digit(number.charAt(i), 10); System.out.print("digit: " + j); } } }Debe reordenar su código con la sintaxis y el orden correctos para que funcione correctamente,
method1(365) dentro del método principalmethod1(365) sea estático para que sea accesible como método de clase.charAtint j = Character.digit(number.charAt(i), 10); para convertir el carácter a un dígito en base a 10 o simplemente use int j = Character.getNumericValue(number.charAt(i)); que será por defecto en base a 10. public static void main(String[] args) { method1(365); } public static void method1(int num) { String number = String.valueOf(num); for (int i = 0; i < number.length(); i++) { int j = Character.digit(number.charAt(i), 10); // int j = Character.getNumericValue(number.charAt(i)); System.out.print("digit:" + j + " "); } }Desde Java 9 puedes usar el método codePoints :
int number = 365; String.valueOf(number) // IntStream .codePoints() // Stream<String> .mapToObj(Character::toString) // print in a column .forEach(j -> System.out.println("digit: " + j));Producción:
digit: 3 digit: 6 digit: 5Ver también: Conversión de valor Int a Lista de dígitos enteros