所以我尝试在做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;
}
}
答案 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());