Comment puis-je utiliser seulement deux chaînes dans ce programme?
Question
Mon professeur m'a donné cette question:
Ecrire un programme qui effectue les opérations suivantes:
- Entrez votre prénom: Peter
- Entrez votre nom: Opunga
- Entrez votre année de naissance: 1992
- Salut Peter Opunga, vous serez 20 d'ici la fin de cette année.
- Bonus 1: Une bonne commenter. (10%)
- Bonus 2: Créer seulement 2 chaînes dans l'ensemble du programme. (10%)
- Bonus 3: Utilisez exactement 4 System.out.print. (10%)
Maintenant, je suis tout à fait nouveau pour Java. Je viens d'être présenté à un peu plus d'une semaine, ce qui est ce que je suis venu avec:
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");
J'ai réussi à terminer Bonus 1 et 3, mais ne peut pas sembler figurer dehors Bonus 2. Aide S'il vous plaît! Post-scriptum Il a dit que je peux obtenir de l'aide aussi longtemps que je ne cherche pas à passer pour ma propre idée.
La solution
Vous pouvez utiliser une chaîne pour obtenir le nom complet et un pour l'année .. vous pouvez le faire de cette façon
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
Autres conseils
Vous pouvez réutiliser des chaînes, donc String last = in.readLine();
peut être remplacer par first = in.readLine ();
Maintenant, si vous avez besoin d'une chaîne à lire depuis, et seulement besoin d'une chaîne pour la réponse ... vous devriez être en mesure de comprendre à partir de là comment utiliser seulement deux chaînes
(Conseil http://docs.oracle.com/javase/ tutorial / java / data / strings.html )
EDIT:. Désolé, je pensais que vous utilisiez la classe java.util.Scanner de sorte que le suivant ne sera pas d'aide à moins que vous avez envie de passer à la place que
Ce qui suit a été écrit en supposant que vous utilisez:
java.util.Scanner in = new java.util.Scanner(System.in);
in.nextLine();
Article précédent:
Je pense que vous êtes à la recherche de la méthode de
in.nextInt();
au lieu de analyse d'une chaîne de retour pour l'année de naissance.Il faut aussi scanner au courant a ainsi une plus grande capacité telles que la numérisation pour motifs (RegEx) et de jetons entrée de chaîne.
Dans l'avenir, vous voudrez peut-être utiliser un IDE comme Netbeans qui vous permet de parcourir rapidement les méthodes possibles d'une classe avec l'auto-complétion. Si vous êtes autorisé à le faire qui est.