principiante aquí He buscado en cualquier lugar pero parece que no puedo encontrar ninguna solución o problema relacionado con el mío. Acabo de empezar a aprender Java y este es mi problema:
Tengo un código de trabajo donde la entrada se divide por "/":
Scanner d = new Scanner(System.in); System.out.println("Enter your birthday (mm/dd/yyyy): "); String birthday = d.next(); String[] bdayArr = birthday.split("/", 3); int current = 2022; int age = current - Integer.parseInt(bdayArr[2]);ahora era solo una solución mientras tanto, ya que el formato de fecha que quiero debe separarse con espacios (por ejemplo, 21 de enero de 1899) y el propósito de dividirme es que necesito obtener el año para usar en un bloque de código que calcula la edad de la persona en función del año de nacimiento.
Sin embargo, cuando trato de dividirlo por espacios en blanco, parece que ya no puedo acceder a la matriz. Códigos de error que van desde fuera de los límites hasta una NumberFormatException cuando ingreso (por ejemplo, 21 de enero de 1989) (código a continuación)
String[] bdayArr = birthday.split("\\s+", 3);
No se que estoy haciendo mal, espero que alguien me pueda ayudar. (Sé que la pregunta es demasiado larga y no va directamente al punto en el que quería proporcionar tanto contexto)
El problema es causado por d.next() , debe usar d.nextLine() en su lugar. para comprender por qué debería comprobar esta pregunta ¿Cuál es la diferencia entre los métodos next() y nextLine() de la clase Scanner?