Pregunta

Mi maestro me dio esta pregunta:

Escriba un programa que haga lo siguiente:

  • Ingrese su primer nombre: Peter
  • Ingrese su apellido: Opunga
  • Ingrese su año de nacimiento: 1992
  • Hola Peter Opunga, tendrás 20 años para fines de este año.
  • Bonificación 1: Comentario adecuado. (10%)
  • Bonificación 2: Cree solo 2 cadenas en todo el programa. (10%)
  • Bonificación 3: use exactamente 4 System.out.print. (10%)

Ahora soy completamente nuevo en Java. Me acabo de presentarlo hace poco más de una semana y esto es lo que se me ocurrió:

import java.io.*;

public class A1Chuah {

    public static void main(String[] args) throws IOException {

        BufferedReader in = new BufferedReader (new InputStreamReader (System.in));

        //Prints instructions for user to enter first name.
        System.out.println("Enter first name: ");
        //Obtains user input for first name.
        String first = in.readLine ();
        //Prints instructions for user to enter last name.
        System.out.print ("Enter last name: ");
        //Obtains user input for last name.
        String last = in.readLine();
        //Prints instructions for user to enter birth year.
        System.out.print ("Enter your birth year: ");
        //Obtains user input for birth year.
        String year = in.readLine ();
        //Converts String year to int useryr
        int useryr = Integer.parseInt(year);
        //Sets int oriyr to value of 2012
        int oriyr = 2012;
        //Sets int outyr as oriyr - useryr
        int outyr = oriyr - useryr;
        //Prints out information.
        System.out.println("Hi" + " " + " " + last + "," + " " + "you will be" +  " " + outyr + " " + "by the end of this year");

He logrado completar el bono 1 y 3, pero parece que no puedo resolver el bono 2. ¡Por favor, ayuda! PD, dijo que puedo obtener ayuda siempre que no trate de pasarla como mi propia idea.

¿Fue útil?

Solución

Puede usar una cadena para obtener el nombre completo y otro para el año. Puede hacerlo de esta manera

    System.out.println("Enter first name: ");

    String name = in.readLine();

    System.out.print ("Enter last name: ");

    name+= " " + in.readLine();

    System.out.println(name); // should print first and last

Otros consejos

Puedes reutilizar cadenas, así que String last = in.readLine(); se puede reemplazar con first = in.readLine ();

Ahora, si solo necesita una cadena para leer, y solo necesita una cadena para la respuesta ... debería poder averiguar desde allí cómo usar solo dos cadenas

(Insinuación http://docs.oracle.com/javase/tutorial/java/data/strings.html)

EDITAR: Lo siento, pensé que estabas usando la clase java.util.scanner, por lo que lo siguiente no será de ayuda a menos que tengas ganas de cambiar a eso.

Lo siguiente fue escrito bajo la suposición que estaba usando:

java.util.Scanner in = new java.util.Scanner(System.in);
in.nextLine();

Publicación anterior:

Creo que estás buscando el in.nextInt(); Método en lugar de analizar una cadena devuelta para el año de nacimiento.

También tenga en cuenta que Scanner tiene mucha más capacidad, como escanear para patrones (regex) y entrada de cadena de tokenización.

En el futuro es posible que desee usar un ide como Netbeans lo que le permite navegar rápidamente a través de los posibles métodos de una clase con el Auto-Completo. Si se le permite hacerlo, eso es.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top