我正在尝试用java制作一个计算器。目前,它只能使用包含空格的字符串,如:"123 * 123"
。
我想让它在没有空格时拆分字符串,如:"123*123"
。
我该怎么做?
public static void main(String[] args){
System.out.println("Porfavor insira a sua conta: ");
Scanner scanner = new Scanner(System.in);
int numeroEsquerda = scanner.nextInt();
String op = scanner.next();
int numeroDireita = scanner.nextInt();
System.out.println(conta(numeroEsquerda,op,numeroDireita));
}
private static int conta(int numeroEsquerda, String op, int numeroDireita) {
switch (op.charAt(0)) {
case '+':
return numeroEsquerda + numeroDireita;
case '-':
return numeroEsquerda - numeroDireita;
case '*':
return numeroEsquerda * numeroDireita;
case '/':
return numeroEsquerda / numeroDireita;
}
throw new IllegalArgumentException("Unknown operator:" + op);
}
}
答案 0 :(得分:1)
您可以使用正则表达式来拆分字符串:
s = "123*321";
Pattern p = Pattern.compile("(\\d+)(.)(\\d+)");
Matcher m = p.matcher(s);
if (m.matches()) {
String numeroEsquerda = m.group(1);
String op = m.group(2);
String numeroDireita = m.group(3);
} else {
new RuntimeException("Invalid input");
}
请注意,您仍需要将数字字符串转换为整数。