2017-02-03 72 views
0

程序首先採取用戶輸入的是用戶要鍵入..如何打印用戶輸入

線的數目的數目都行,但我想打印每一個用戶輸入線,但它不不工作 它只是打印最後一行!

這裏是代碼

Scanner in=new Scanner(System.in); 
    int x=in.nextInt(); 
    String s=""; 

    if (x >=1 && x<= 10000) 
    { 

     for(int i=0;i<=x;i++) 
     { 
      s=in.nextLine(); 

     } 

    } 

    System.out.println(s); 

這裏輸入

你好

世界

輸出

世界

+0

你離一個與你的循環條件'我

回答

0

你不存儲以前的任何字符串。你只是在處置它們。

爲了存儲它們,你可以使用一個數組。像這樣:

Scanner in=new Scanner(System.in); 
    int x=in.nextInt(); 
    String s = new String[x]; 

    if (x >=1 && x<= 10000) 
    { 

     for(int i=0;i<=x;i++) 
     { 
      s[i]=in.nextLine(); 

     } 

    } 

     for(int i=0;i<=x;i++) 
     { 
      System.out.println(s[i]); 
     } 
+0

謝謝..它說arrayInedxOutOfBoundExceptio,所以我使它像這個字符串[x + 1],它的工作 – beginner

+0

我很高興它做到了。考慮接受我的回答,讓其他人知道它已經解決了 –

+0

完成........... – beginner

0

這是由於覆蓋你的串S的每一個時間內的for循環即對於(INT I = 0;我< = X; ++ I)運行的字符串s內的值是覆蓋,所以這就是爲什麼只有當循環是退出時它總是打印最後一個字的原因。 爲什麼不嘗試這種爲:

import java.util.Scanner; 
public class abc { 
    public static void main(String[]args){ 
    Scanner in=new Scanner(System.in); 
    System.out.print("How many line you want to input=\t"); 
    int x=in.nextInt(); 
    String s=""; 
     if (x >=1 && x<= 10000) 
    { 

     for(int i=0;i<=x;i++) 
     { 
      s=in.nextLine(); 
      System.out.print(s); 

     } 

    }