Soy nuevo en Java y acabo de empezar el aprendizaje de este idioma.

Hay una cosa que no entiendo. Tengo que usar nextInt() para obtener un Int por el usuario. Pero cuando yo necesito para obtener una cadena tengo que escribir nextLine().

¿Por qué?

P. S: Que puede sonar como una pregunta estúpida, pero necesito saber 🙂

  • Nunca voy a entender por qué intros para Java empezar con el Escáner. Posiblemente el más mal utilizados y no utilizados de la clase de la API.
  • suena como ¿por qué no la llamamos getInt() o readInt() en lugar de llamar a nextXXX()??
  • ‘la línea’ es, probablemente, mejor aquí. si el usuario tipos de foo bar<ENTER>, la línea es "foo bar"; pero lo que debe nextString() retorno? Sólo el "foo"?
  • Por desgracia, «¿por qué es la api de la forma en que es» por lo general los resultados en el «porque». Raras veces hay una fuente autorizada por qué alguien decidió un api debe ser de la manera que es, a menos que usted puede encontrar la persona que tomó la decisión. Que la incertidumbre significa que este tipo de preguntas por lo general terminan siendo cerrado el Desbordamiento de la Pila. (Mi pensamiento sería, «debido a que una cadena puede tener un salto de línea en el interior».)
  • mi conjetura es que la pregunta está preguntando por qué no hay nextString() simetría con el nextXXX() métodos. Y la respuesta es que es mala definición de lo que un método puede devolver, como se ha señalado por Zhong Yu.
  • exactamente..y sí una buena explicación por zhong Yu de hecho ..y hablando de nextXXX() cada uno de los, a continuación, se definen algunos tipos primitivos supongo y no hay nada como la línea en ese caso….así que supongo que la respuesta es el lenguaje de los diseñadores de elección..disfrutar de ella..
  • curiosidad: ¿qué sugiere usted podría ser una mejor manera de introducir a los ‘entradas’ para Java dev? (es decir, interfaces de usuario gráficas y de acción de los oyentes son muuuuy demasiado en este punto, en mi humilde opinión)
  • honestamente, me gustaría empezar con los fundamentos de: clases, objetos, métodos, propiedades. En lugar de sobrecargar a los usuarios con crufty interfaz de usuario que siempre se distraen, me he visto instructores proporcionan plantillas que se envuelven las clases en una prueba o ejecutar marco. Yo incluso sugieren que las horas dedicadas a la enseñanza del Escáner podría ser mejor, puesto que el aprendizaje de un IDE y una unidad básica en el marco de prueba.
  • pero, ¿qué sugieres para las entradas? clases, objetos, son parte de cada tutorial que me encontré – ¿qué sugiere usted para la interacción con un programa y el suministro de insumos, aunque? (por cierto, el escáner no está de interfaz de usuario – más de un CLI) – no estoy seguro de seguir la lógica de su.
  • Un CLI es un ejemplo de una «Interfaz de Usuario». Yo soy lo que sugiere que la dependencia de la interfaz de usuario a menudo confunde a los novatos, y a menudo no tiene nada que ver con lo que un ejemplo se supone que debe enseñar. Es parte de la ceremonia de instructor de desarrollo. Si tenemos que enseñar a la ceremonia, debemos enseñar algo distinto de Escáner, que en mis años de experiencia he observado que se utilizan en la producción de exactamente nunca. Piense acerca de lo que «de entrada» en realidad es, y las formas en que podemos suministro que a un objeto que todos los pasos de la CLI ceremonia.

InformationsquelleAutor user5482698 | 2017-01-31

2 Comentarios

  1. 0

    Considere esto: nextLine, todo volverá hasta el próximo endline (\n) en forma de Cadena. ¿Usted no piensa que usted va a recuperar todo si se llamaba nextString? En ese caso sería la publicación de la pregunta «¿por qué nextString() detiene en endline»

    tl;dr es porque se busca endline (\n)

    upd: en documenatation se refiere a ella como «omitido» parte. I. e. el cursor pasa a la siguiente línea y devuelve todo «omitido». Salida por defecto es la Cadena, por lo que tienen: todo lo omitido como Cadena.

Dejar respuesta

Please enter your comment!
Please enter your name here