如何在java上单行获取多种数据类型?



我是编码新手,现在我正在学习Java。我试着写一些类似计算器的东西。我用开关大小写写了它,但后来我意识到我必须在一行中获取所有输入。例如,在此代码中,我接受了 3 个输入,但分为 3 行。但是我必须在一行中输入 2 个输入和 1 个字符。第一个数字第二个字符,然后是第三个数字。你可以帮我吗?

Public static void main(String[] args) {
int opr1,opr2,answer;
char opr;
Scanner sc =new Scanner(System.in);
System.out.println("Enter first number");
opr1=sc.nextInt();
System.out.println("Enter operation for");
opr=sc.next().charAt(0);
System.out.println("Enter second number");
opr2=sc.nextInt();
switch (opr){
case '+':
answer=opr1+opr2;
System.out.println("The answer is: " +answer);
break;
case '-':
answer=opr1-opr2;
System.out.println("The answer is: " +answer);
break;
case '*':
answer=opr1*opr2;
System.out.println("The answer is: " +answer);
break;
case '/':
if(opr2>0) {
answer = opr1 / opr2;
System.out.println("The answer is: " + answer);
}
else {
System.out.println("You can't divide to zero");
}
break;
default:
System.out.println("Unknown command");
break;
}

尝试以下方式

System.out.print("Enter a number then operator then another number : ");
String input = scanner.nextLine();    // get the entire line after the prompt 
String[] sum = input.split(" ");

这里的numbersoperator"space"隔开。现在,您可以通过以下方式调用它们sum array.

int num1 = Integer.parseInt(sum[0]);
String operator = sum[1];   //They are already string value
int num2 = Integer.parseInt(sum[2]);

然后,你可以像你所做的那样做。

你可以尝试这样的事情:

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please enter number, operation and number. For example: 2+2");
String value = scanner.next();
Character operation = null;
StringBuilder a = new StringBuilder();
StringBuilder b = new StringBuilder();
for (int i = 0; i < value.length(); i++) {
Character c = value.charAt(i);
// If operation is null, the digits belongs to the first number.
if (operation == null && Character.isDigit(c)) {
a.append(c);
}
// If operation is not null, the digits belongs to the second number.
else if (operation != null && Character.isDigit(c)) {
b.append(c);
}
// It's not a digit, therefore it's the operation itself.
else {
operation = c;
}
}
Integer aNumber = Integer.valueOf(a.toString());
Integer bNumber = Integer.valueOf(b.toString());
// Switch goes here...
}

注意:此处未验证输入。

最新更新