Come si usa solo due corde in questo programma?
Domanda
Il mio insegnante mi ha dato questa domanda:
Scrivi un programma che fa il seguente:
- Inserisci il tuo nome: Peter
- Inserisci il tuo cognome: Opunga
- Inserisci il tuo anno di nascita: 1992
- Ciao Peter Opunga, si sarà di 20 entro la fine di quest'anno.
- Bonus 1: Una corretta commentando. (10%)
- Bonus 2: Creare solo 2 stringhe in tutto il programma. (10%)
- Bonus 3: Utilizzo esattamente 4 System.out.print. (10%)
Ora sono completamente nuovo a Java. Mi è stato appena introdotto per un po 'più di una settimana fa, e questo è ciò che mi si avvicinò con:
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");
sono riuscito a completa Bonus 1 e 3, ma non riesco a capire il Bonus 2. Aiuto per favore! Post scriptum Ha detto che posso ottenere aiuto finché io non cerco di farlo passare come la mia idea.
Soluzione
È possibile utilizzare una stringa per ottenere il nome completo e l'altro per l'anno .. si può fare in questo modo
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
Altri suggerimenti
È possibile riutilizzare le stringhe, in modo String last = in.readLine();
può essere sostituirli con first = in.readLine ();
Ora, se avete solo bisogno di una stringa da leggere in da, e solo bisogno di una stringa per la risposta ... si dovrebbe essere in grado di capire da lì come utilizzare solo due stringhe
( http://docs.oracle.com/javase/ tutorial / java / dati / strings.html )
EDIT:. Spiacenti ho pensato che si stava utilizzando la classe java.util.Scanner in modo quanto segue non sarà di aiuto a meno che non ci si sente come il passaggio a che, invece
Quanto segue è stato scritto sotto l'ipotesi che si stava utilizzando:
java.util.Scanner in = new java.util.Scanner(System.in);
in.nextLine();
Post precedente:
Penso che si sta cercando il metodo
in.nextInt();
invece di parsing di una stringa restituito per anno di nascita.Anche essere consapevoli Scanner ha modo più funzionalità come ad esempio la scansione per modelli (RegEx) e creazione di token di input stringa.
In futuro si consiglia di utilizzare un IDE come Netbeans che permette di sfogliare velocemente i possibili metodi di una classe con il completamento automatico. Se si è permesso di fare in modo che sia.