我对输出感到困惑:

时间:2016-09-03 03:36:51

标签: java string

这是我的Java代码:

import java.util.*;
public class solution{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        for(int i=0;i<3;i++) {
            String s=sc.nextLine();
            System.out.println(s);
        }
    }
 }

当我提供此输入时:

rohan
kumar
sharma

我希望输出为:

rohan
kumar
sharma
rohan
kumar
sharma

我得到的实际输出是:

rohan
kumar
rohan
kumar
sharma

请注意,在我按下输入按钮之前,输出中的最后一个sharma才会显示。

问题

如何更改代码以获得所需的输出?

4 个答案:

答案 0 :(得分:3)

您可以将扫描的字符串附加到StringBuilder,最后,您可以将其打印如下:

 Scanner sc=new Scanner(System.in);
 StringBuilder sb = new StringBuilder();
 for(int i=0;i<3;i++){
      String s=sc.next();
      sb.append(s+"\n");
 }
 System.out.println(sb.toString());

如果您不想在每次新输入后按ENTER键,请使用sc.next()

现在,如果您将Rohan kumar sharma复制并粘贴到终端,则o / p将为:

  Rohan kumar sharma   罗汉
  库马尔
  夏尔马

修改

或者您可以将输出字符串存储在一个字符串中,最后您可以拆分字符串并打印所需的输出,如下所示:

 Scanner sc=new Scanner(System.in);
 String str="";
 for(int i=0;i<3;i++){
   String s=sc.next();
   str = str + s;       //append to a string instead of string buffer.
 }
 String a[] = str.split(" ");
 for(int i=0;i<a.length;i++){
     System.out.println(a[i]);
 }

修改 如果您也不想使用str.split(),请同时添加\n。请尝试以下方法:

 Scanner sc=new Scanner(System.in);
 String str="";
 for(int i=0;i<3;i++){
   String s=sc.next();
   str = str + s+"\n";    //Just string instead of string buffer.
 }
 System.out.println(str);

答案 1 :(得分:1)

这里,sc.nextLine()从输入读取整行。因此,您可以逐行从控制台读取数据,并将它们存储在数组中,以后可以使用它们。

import java.util.*;
public class Condition{
public static void main(String[] args){
    Scanner sc=new Scanner(System.in);

    String[] strings = new String[3];

    for(int i=0;i<3;i++) {
        String s=sc.nextLine();
       // System.out.println(s);
        strings[i]=s;
    }

    for (String string : strings) {
        System.out.println(string);
      }
   }
 }

答案 2 :(得分:0)

您应该将LF字符附加到最后一个输入行(sharma)。

当从输入获取LF char时,Scanner.nextLine()返回,如果你错过了最后一个LF char,则scan.nextLine()将等待行结束,即使它已经获得了整行#s;内容。

答案 3 :(得分:-2)

    $json = '{
   "cat":{
      "id":"1234567",
      "source_id":null,
      "title_en":"first season",
      "description_en":"This is spring category "
   },
   "videos":[
      {
         "id":"312412343",
         "url":"\/2015-07-17\/1abcd.mp4",
         "img":"image\/44\/\/2015-07-17\/1abcd.jpg",
         "description1":"some text for description here",
         "description2":"some text for description here2",
         "title":"first title here"

      },
      {
         "id":"2342343",
         "url":"\/2015-07-16\/2dcdeg.mp4",
         "img":"images\/44\/\/2015-07-16\/2dcdeg.jpg",
         "description1":"some other text here" for description ",
         "description2":"some other text here" for description2 ",
         "title":"second title here"

      }
   ]
}';

$json = preg_replace('/(description\d+":)"(.*)"/', '$1"empty"', $json);
echo '<pre>' . $json . '</code>';
$json = json_decode($json, true);
var_dump($json);