2017-10-03 1 views
0

Wie mehrere Strings von Scanner zu drucken, da gibt es kein Array zu nennen und ich bin fest, wie die Ausgabe zu generieren.Java - Zurückgeben mehrerer String-Benutzereingabe in tun, während Endlosschleife

Meine do-while Schleife wird beendet, wenn der Benutzer # eingibt. Es scheint in Ordnung, bis das Teil das Ergebnis ausdrucken, wenn ich den strResult setze, kann ich nur die letzte Zeichenfolge der Benutzereingabe sehen.

Im Folgenden finden Sie meine aktuellen Code:

import java.util.Scanner; 
public class SecretMessage { 

    public static void main(String[] args) { 
     int count =0; 
     int i =0; 
     //char ch;<<<<<<<<<< I need this for converting the string to char 
     Scanner sc = new Scanner(System.in); 
     //String result[] = new String[count];<<<<<<<<purposedly for array 
     String input =""; 
     String strResult =""; 


     do { 
      System.out.print("Enter your text :"); 
      input=sc.nextLine(); 
      count++; 
     } 

     while (!input.equals("#")); 
     { 
      System.out.print("Result :\n"); 

      strResult = "Case #"+(count-1)+" :"+input; 
      //result[count] = strResult;<<<<<<to represent all result 
     }  

     for (i=0;i<(count-1);i++) { 

      System.out.println(" "+strResult); 

     } 
    } 
} 
+0

Ich bin nicht sicher verwenden können, was Sie versuchen zu tun, um jeden der gelesenen Stränge in Reihenfolge zu drucken? Aber mit einem Array? Oder durch ** nicht ** benutzen? – Frakcool

+0

"Da es kein Array gibt" - gibt es etwas, das Sie daran hindert, eines zu erstellen? Übrigens: Da Sie die Anzahl der Zeilen nicht vorher wissen können, ist eine ArrayList möglicherweise eine bessere Wahl. – tevemadar

+0

Um @Frakcool -Ja, muss ich jeden der eingegebenen Strings in der Reihenfolge drucken. Ich weiß nicht, wie das Array in diesen do-while-Fällen funktioniert, aber in der For-Schleife weiß ich, wie das Array funktioniert. – Aliff

Antwort

0

Sie eine Arraylist

ArrayList list = new ArrayList(); 


    do { 
     System.out.print("Enter your text :"); 
     input=sc.nextLine(); 
     list.add(input); 
     count++; 
     } 

    while (!input.equals("#")); 
{ 
     System.out.print("Result :\n"); 

     strResult = "Case #"+(count-1)+" :"+input; 
     //result[count] = strResult;<<<<<<to represent all result 
     }  

    for (i=0;i<list.size()-1;i++) { 

     System.out.println("Case #" + (i+1) + " " + list.get(i)); 

    } 
+0

Ja. Es klappt. Vielen Dank! – Aliff

0

Verwenden String: In Java, how to append a string more efficiently?

StringBuilder stringBuilder = new StringBuilder(); 

    do { 
     System.out.print("Enter your text :"); 
     input=sc.nextLine(); 
     stringBuilder.append(input); 
     count++; 
    } 

    while (!input.equals("#")); 
    { 
     System.out.print("Result :\n"); 

     strResult = "Case #"+(count-1)+" :"+stringBuilder.toString(); 
     //result[count] = strResult;<<<<<<to represent all result 
    } 
+0

Wenn ich StringBuilder verwende, wie kann ich die Schleife stoppen? Wie Sie sehen können, ist mein while-Ausdruck bereits mit der Eingabe – Aliff

+0

initialisiert. Das habe ich verpasst. Sie können die Eingabe immer noch als letzte Zeile aktualisieren und die Variable an stringbuilder anhängen. – Asthmatic

+0

Oh, ich verstehe. Vielen Dank! – Aliff