请告诉我以下java代码有什么问题。
我正在尝试通过Scanner
类对象收集用户的输入,然后使用while将其存储在array
中,但如果我不提供{{{},那么它将是无限循环1}}条件,所以当输入等于" q" 时,我想break
,但它没有工作。
break
答案 0 :(得分:1)
您不会将String
与==
进行比较。使用.equals()
之类的
if (!x.equals("q")){
和
if (x.equals("q"))
注意:我认为您没有正确使用Scanner
。您接受输入,但继续检查x
,而不是输入。
答案 1 :(得分:0)
请勿比较x =="q"
之类的字符串
在java中使用 .equals 函数进行字符串比较。
将代码替换为:x.equals("q") for x =="q"
和!x.equals("q") for x !="q"
答案 2 :(得分:0)
您没有从Scanner
读取更新值。以下是更正格式和其他错误后更新的代码供您参考。另外,使用==
方法进行字符串比较 - 而不是equals()
符号 -
import java.util.*;
public class ProjectOne{
public static void main (String []arg ){
ArrayList one = new ArrayList();
Scanner input = new Scanner(System.in);
System.out.println("Enter");
String x = null;
while ( input.hasNext()) {
x = input.next();
if (!x.equals("q")) {
one.add(x);
}
if (x.equals("q")){
break;
}
}
System.out.println(one);
}
答案 3 :(得分:0)
扫描仪会在您输入之前读取所有内容 - 您输入的整行。
我认为这就是你所需要的:
import java.util.ArrayList;
import java.util.Scanner;
public class ProjectOne
{ public static void main (String []arg ){
ArrayList one = new ArrayList();
Scanner input = new Scanner(System.in);
System.out.println("Enter");
String pattern;
String x = input.next();
while (true){
String line = input.next();
if(line.contains("q"))break;
else{
x = x + " " + line;
}
}
System.out.println(x);
}