如您所知,实数区间是一组实数,其中包含位于该集合中任意两个数之间的所有实数。 我正在编写一个程序来计算两个区间的交集和并集。 区间可以是 (-∞,n) 也可以是 (n1,n2)。为简化起见,用户只需键入“-”而不是“-∞”。在我的程序的一部分中,我放置了一个 if 语句来声明间隔是以数字还是“-”开头。 这是我的代码:
import java.util.Scanner;
public class myProgram {
public static void main(String[] args) {
Scanner s1 = new Scanner(System.in);
System.out.println("Please type in your first interval:");
String i1 = s1.next();
String i1s = i1.substring(1, i1.indexOf(','));
if(i1s != "-") {
int e = Integer.parseInt(i1s);
System.out.println("e = " + e);
} else if (i1s == "-") {
System.out.println("i1s = " + i1s);
}
}
}
我的输入是:(-,8) 我看到这个错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: "-"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:642)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at myProgram.main(myProgram.java:11)
似乎 if 语句不能正常工作...但为什么呢?