2017-05-24 178 views
-1

我给出了一个总数和我从输入中得到的那么多字符串。如何同时打印所有输出

我的代码是:

public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Scanner sc = new Scanner(System.in); 
     int tot = sc.nextInt(); 
     for(int i=0; i<r; i++){ 
      int L; 
      String str = sc.next(); 
      if(L == str.length()) { 
       print(str); 
      } 


     } 
    } 

private static void print(String str){ 
    System.out.println("String is "+ str); 
} 

在这段代码我的字符串印刷我给输入之后。

OutPut : 3 
"ABC" 
String is ABC 
"ABCD" 
String is ABCD 
"ABCDE" 
String is ABCDE 

但是我想要的是先取得所有的输入然后打印;

例:

OutPut : 3 
"ABC" 
"ABCD" 
"ABCDE" 

String is ABC 
String is ABCD 
String is ABCDE 

可有人请解释一下,帮我如何修改我的字符串。

注:我的想法是把所有的东西放入堆栈,但不知道打印谁。我知道我的结果具有因的到来for循环,但不知道如何从

+0

哪里是打印方法? –

+0

使用'String [] str'数组并添加像这样的'str [i] = sc.next();'。在你的循环调用'print(str);'后把方法的参数改成字符串数组。然后迭代数组并打印每个值 – XtremeBaumer

+1

@ΦXocę웃Пepeúpaツ我更新我的问题 –

回答

1

comeout保存所有的文字在一个全球vairable

public static void main(String[] args) { 
String str=""; 
     // TODO Auto-generated method stub 
     Scanner sc = new Scanner(System.in); 
     int tot = sc.nextInt(); 
     for(int i=0; i<r; i++){ 
      str += sc.next(); 

     } 
print(str); 
    } 

private static void print(String str){ 
    System.out.println("String is "+ str); 
} 
+0

我无法在for循环外使用print方法,因为对于每个字符串,我检查一个条件相对于其长度。我更新我的问题。你能再看看吗? –

+0

你没有初始化L之前的比较,对不起,但我不明白你的意思,你是什么意思 –

+0

你可以使用任何你想打印的地方 –

1

有简单的方法来做到这一点。

使用StringBuilder在你的代码如下:

... 
    StringBuilder sb = new StringBuilder(); 
    for(int i=0; i<r; i++){ 
      String str = sc.next(); 
      sb.append(str); 
    } 
    return/print sb.toString(); 
    ... 
0

1日的事情:将打印方法出来的for循环,你需要做的只有一次,一旦输入被收集,然后用一个String对象并附加输入,也许在每次循环迭代后使用换行符。

public static void main(String args[]) { 
    Scanner sc = new Scanner(System.in); 
    int tot = sc.nextInt(); 
    String str = ""; 
    for (int i = 0; i < tot; i++) { 
     str += "String is: "; 
     str += sc.next(); 
     str += "\n"; 
    } 
    print(str); 
    sc.close(); 
} 

private static void print(String str) { 
    System.out.println(str); 
} 
+0

我不能在for循环之外使用print方法,因为对于每一个字符串我都是根据其长度检查一个条件。我更新我的问题。你能再看看吗? –

+0

究竟是什么条件? –

0

我不能用印刷方法以外的for循环,因为对于每个字串 我检查相对于它的长度的一个条件。我更新了我的 问题。请你再看看

因为你问我已更新ΦXocę 웃 Пepeúpa ツ答案。 希望这可以帮助你。

public static void main(String args[]) 
{ 
    Scanner sc = new Scanner(System.in); 
    int tot = sc.nextInt(); 
    int counter = 0;//add a counter 
    String str = ""; 
    for (int i = 0; i < tot; i++) 
    { 
     counter++;//increment for for each input 
     str += "String is: "; 
     str += sc.next(); 
     str += "\n"; 
     if(counter == tot)//if tot ia equal to total number of intake then print 
     { 
      print(str); 
     } 
    } 
    sc.close(); 
} 
private static void print(String str) 
{ 
    System.out.println("String is "+ str); 
} 
+0

谢谢@Gokul让我试试你的答案。 –

+0

请让我知道它是否工作.... –