!string.equals(string) 变成假结果
!string.equals(string) turns false result
在我的程序的一部分中,我放置了一个 while 循环来反复请求输入。有一个选项可以输入字母“F”并打破循环。
这是我的程序:
public class Example {
public static void main(String[] args) {
int x = 0;
ArrayList Numbers = new ArrayList();
while (x==0) {
System.out.println("Type your number:");
Scanner s = new Scanner(System.in);
if (s.equals("f") || s.equals("F")) {
x = 1;
}
else if (!s.equals("f") && !s.equals("F")) {
int n = Integer.parseInt(s.next());
Numbers.add(n);
}
}
}
}
当我 运行 程序时,我输入一些数字,然后输入“F”。我看到这个错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: "F"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at Example.main(Example.java:13)
我相信字符串“F”可以通过我的 else if 但我不知道为什么。我该如何解决?
您正在将字符串与扫描仪对象进行比较。让我们看看扫描仪对象在 java.
中是如何工作的
Scanner myObj = new Scanner(System.in);
String myInput = myObj.nextLine(); // Read user input
然后你可以将你的 myInput
与字符 'f' 或 'F'
进行比较
您不能直接将扫描仪对象与字符串进行比较。您将需要使用扫描仪获取一些输入,然后您可以将该输入与其他类型进行比较。
试试 运行 这个代码。
public class Example {
public static void main(String[] args) {
int x = 0;
ArrayList Numbers = new ArrayList();
Scanner sc = new Scanner(System.in);
while (x==0) {
System.out.println("Type your number:");
String s = sc.nextLine();
if (s.equals("f") || s.equals("F")) {
x = 1;
}
else if (!s.equals("f") && !s.equals("F")) {
int n = Integer.parseInt(s.next());
Numbers.add(n);
}
}
}}
在我的程序的一部分中,我放置了一个 while 循环来反复请求输入。有一个选项可以输入字母“F”并打破循环。 这是我的程序:
public class Example {
public static void main(String[] args) {
int x = 0;
ArrayList Numbers = new ArrayList();
while (x==0) {
System.out.println("Type your number:");
Scanner s = new Scanner(System.in);
if (s.equals("f") || s.equals("F")) {
x = 1;
}
else if (!s.equals("f") && !s.equals("F")) {
int n = Integer.parseInt(s.next());
Numbers.add(n);
}
}
}
}
当我 运行 程序时,我输入一些数字,然后输入“F”。我看到这个错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: "F"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at Example.main(Example.java:13)
我相信字符串“F”可以通过我的 else if 但我不知道为什么。我该如何解决?
您正在将字符串与扫描仪对象进行比较。让我们看看扫描仪对象在 java.
中是如何工作的Scanner myObj = new Scanner(System.in);
String myInput = myObj.nextLine(); // Read user input
然后你可以将你的 myInput
与字符 'f' 或 'F'
您不能直接将扫描仪对象与字符串进行比较。您将需要使用扫描仪获取一些输入,然后您可以将该输入与其他类型进行比较。 试试 运行 这个代码。
public class Example {
public static void main(String[] args) {
int x = 0;
ArrayList Numbers = new ArrayList();
Scanner sc = new Scanner(System.in);
while (x==0) {
System.out.println("Type your number:");
String s = sc.nextLine();
if (s.equals("f") || s.equals("F")) {
x = 1;
}
else if (!s.equals("f") && !s.equals("F")) {
int n = Integer.parseInt(s.next());
Numbers.add(n);
}
}
}}