【发布时间】:2016-04-14 16:05:07
【问题描述】:
我希望用户使用以下变量之一输入数学方程式:*、/、+、-
输入示例(无空格):2*2、35.7/3、4.5+5.5
然后我想将第一个数字、char 变量和第二个数字分开并将它们存储到单独的变量中。
当我使用这段代码时:
import java.io.*;
import java.util.Scanner;
class Extra {
public static void main (String[] args) throws IOException {
double fnum, snum;
char operator;
System.out.println("Type Operation.");
Scanner s = new Scanner ( System.in );
fnum = s.nextDouble();
operator = s.next().charAt(fnum + 1);
snum = s.nextDouble();
System.out.println(fnum);
System.out.println(snum);
System.out.println(operator);
s.close();
}
}
我收到此错误/响应:
Type Operation.
2*2
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Extra.main(Extra.java:24)
我真的很想用这样的东西:
operator = s.next("[*,/,+,-]").charAt(fnum + 1);
请帮忙,我不知道我做错了什么。
【问题讨论】:
-
读取整行作为输入字符串,然后解析它。
标签: java input char java.util.scanner system.in