import java.util.*;
class test
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
ArrayList<String> a=new ArrayList<String>();
while(sc.hasNext())
a.add(sc.next());
for(String s :a)
System.out.println(s);
}
}
运行的时候没有反应,可能陷入死循环了。。。求大神解答是怎么回事?
import java.util.*;
class test
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
ArrayList a=new ArrayList(); //创建一个可变数组
while(sc.hasNext())
a.add(sc.next()); //将输入逐个放入集合中
for(String s :a)
System.out.println(s); //用foreach逐个打印
}
}
可能是数组a没有定义类型,无法识别是否为String类型,数组定义的时候加上
for(String s :a)
->
for(Object s :a)
数组定义的时候加上泛型String
import java.util.*;
class test
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
ArrayList a=new ArrayList(); //创建一个可变数组
while(sc.hasNext()){
String temp = sc.next();
if(temp.equals("0"))
break;
a.add(temp); //将输入逐个放入集合中
}
for(String s :a)
System.out.println(s); //用foreach逐个打印
}
}
死循环,Scanner把命令行中的换行变成'\n'
你的while没用大括号啊
public class Demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList a = new ArrayList();
while (sc.hasNextLine()) {
String temp = sc.nextLine();
a.add(temp);
break;
}
for (String s : a)
System.out.println(s);
}
}
是这样的吗?
你可以试试Ctrl+z