Java是否具有StringStream等价物?

时间:2016-06-08 23:02:41

标签: java

所以我尝试在做C ++很长一段时间后回到Java,我决定通过将我的C ++程序重写为Java来练习。现在在我的Min Max计划中,我有以下几行代码:

  //C++ Code Sample
  getline(cin,mystr);
  stringstream(mystr) >> value;

  max = value;
  min = value;

  stringstream stream(mystr);

      while(stream >> value)
      {
        if(value > max)
        {
          max = value;
        }
        else if(value < min)
        {
          min = value;
        }
      }

现在,getline相当于使用Scanner类,但StringStream是什么?搜索时我看到有人提到InputStream,但这似乎与从文件中读取有关,例如:http://www.tutorialspoint.com/java/io/inputstream_read.htm

因此,我想知道我是否可以获得类似的功能?我当然也可以要求用户指定他们希望键入多少输入,然后只填充一个数组;但这似乎很尴尬。

更新

我创建了一个快速的解决方法,其工作原理如下:

  String in = "";

            while(true)
            {

                in = input.nextLine();
                if(in.equalsIgnoreCase("DONE"))
                {
                    break;
                }
                value = Integer.parseInt(in);

                if(value > max)
                {
                    max = value;
                }
                else if(value < min)
                {
                    min = value;
                }
            }

2 个答案:

答案 0 :(得分:9)

您可以使用java.util.Scanner使用Scanner(String)解析String。您还可以使用java.lang.StringBuilder以有效的方式构造字符串。

答案 1 :(得分:1)

如果您尝试从输入中读取一串数字,然后将其转换为整数,则可以使用以下使用Streams的代码。

        Scanner sc = new Scanner(System.in);

        System.out.println("Enter the array of integers");

        String str = sc.nextLine();

        String[] strings = str.split(" ");

        List<Integer> ints = Stream.of(strings).
                               map(value -> Integer.valueOf(value)).
                               collect(Collectors.toList());