我试图创建一个计算器,需要一个字符串,可以在4种不同格式:如何解析这个输入?
input: add 1 2 13 5 together
=> 1 + 2 + 13 + 5 = 21
input: add 9 to 10
=> 9 + 10 = 19
input: subtract 5 from 13
=> 13 - 5 = 8
input: bye
=> end program
我已经设置了我这样的代码:
import java.util.*;
class Calculator {
public static void main(String[] args) {
System.out.println("yes>")
Scanner zip = new Scanner(System.in);
String input = zip.nextLine();
if (input.equals("bye"))
System.exit(0);
else if (input.substring(0, 1) == "a") //assume first cmd is add
(integer.ParseInt(input.subtring(3, BLANK) //extract first number
我的问题是,我不知道字符串中数字的索引。我想这样做:
if(input.substring(0,3)==“add”)=>下一个数字将是一个数字。解析integer.substring(3,BLANK)。 BLANK应该是空格字符的索引。那么这个数字需要放入一个变量中,程序需要检查所有其他整数。
我对如何解决这个问题有点困惑。如果有500个需要添加(或减去)的数字会怎样?有没有办法以递归方式做到这一点?这个程序应该使用我读过的正则表达式,但我不知道如何实现。
任何帮助将非常感激。在此先感谢
我会使用正则表达式 - 您可以用非常确定的模式捕捉关键字和数字。我会写代码,但我不知道Java的方式.. –
这就是我想弄清楚如何做。我的语法只是离开 – mdegges