作为我正在编写的calulator程序的一部分,我需要让用户在一个字符串中输入所有参数,我需要从中提取相应的值。
例如,用户输入“3 5 *”,他将获得“15”。
所以我需要编写的程序将采用'3'并将其分配给 double input1 ,将'5'分配给 double input2 ,将'*'分配给 char运算符。如何让java将字符串的一部分分配给不同的成员。
我在考虑将用户的字符串拆分成多个字符串并解析出来的值,但我不知道它会有多么有效。提前谢谢。
答案 0 :(得分:0)
如果您有多个操作,则需要考虑操作顺序。 IE(3 4 +)3 *。一种常见的方法是使用堆栈。将值推入堆栈,并对操作本身后弹出的值执行操作。对于解析只是拆分空间' &#39 ;.但是,如果您有更复杂的表达式,请考虑后期订单遍历或堆栈实现。
答案 1 :(得分:0)
此问题已在此处得到解答:Evaluating a math expression given in string form
我在答案中给出了一个非常简单的细分:Calculating String-inputed numerical expressions?
答案 2 :(得分:0)
您可以使用StringTokenizer将字符串拆分到找到空格的位置。
String s =“3 5 *”; StringTokenizer st = new StringTokenizer;
您可以通过st.hasMoreTokens()检查是否有更多令牌。 您可以通过st.nextToken()使用令牌aka字符串(它返回一个字符串)。
您还可以将每个“字符串”(例如“3”)转换为双精度通道: String firstNumString =“3”; Double first = Double.parseDouble(firstNumString);
这导致Double变量'first'包含数字3。