Как мне использовать только две строки в этой программе? - PullRequest
2 голосов
/ 17 февраля 2012

Мой учитель задал мне этот вопрос:

Напишите программу, которая выполняет следующие действия:

  • Введите ваше имя: Петр
  • Введите свою фамилию: Опунга
  • Введите год вашего рождения: 1992
  • Привет, Питер Опунга, тебе будет 20 к концу этого года.
  • Бонус 1: Правильное комментирование. (10%)
  • Бонус 2: создание только 2 строк во всей программе. (10%)
  • Бонус 3: Используйте ровно 4 System.out.print. (10%)

Теперь я совершенно новичок в Java. Я только что познакомился с ним чуть более недели назад, и вот что я придумал:

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");

Мне удалось завершить Бонус 1 и 3, но, похоже, не могу определить Бонус 2. Пожалуйста, помогите! Постскриптум Он сказал, что я могу получить помощь, если не попытаюсь выдать ее за мою собственную идею.

Ответы [ 3 ]

4 голосов
/ 17 февраля 2012

Вы можете использовать одну строку для получения полного имени и одну для года. Вы можете сделать это так

    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
0 голосов
/ 17 февраля 2012

РЕДАКТИРОВАТЬ: Извините, я думал, что вы используете класс java.util.Scanner, поэтому следующее не поможет, если вы не хотите переключаться на это.

Следующее былонаписано в предположении, что вы использовали:

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

Предыдущее сообщение:

Я думаю, что вы ищете метод in.nextInt(); вместо анализа возвращенной строки за год рождения.

Также имейте в виду, что у сканера гораздо больше возможностей, таких как сканирование шаблонов (RegEx) и ввод строки токенов.

В будущем вы можете использовать IDE, например Netbeans , который позволяет быстро просматривать возможные методы класса с автозаполнением.Если вам разрешено это сделать, то это

0 голосов
/ 17 февраля 2012

Вы можете повторно использовать строки, поэтому String last = in.readLine(); можно заменить на first = in.readLine ();

Теперь, если вам нужна только одна строка для чтения, а для ответа нужна только одна строка ... выдолжно быть в состоянии понять, как использовать только две строки

(Подсказка http://docs.oracle.com/javase/tutorial/java/data/strings.html)

...