编写一个函数读取 number(s, i) ,它接受一个字符串 s 和一个整数 I,并返回一个由以下组成的对

问题描述

制作计算器 在这个问题中,您必须编写一个函数求值,该函数求值的字符串表示为 一个简单的数学表达式,例如"(1+2)3",并对其求值以获得结果 数字。 输入字符串可能包括以下任何一项:正数、+、-、、/、(、)。电子 数字可能包含也可能不包含小数部分,例如数字 3 可以表示为“3”或 作为“3.0”或任意数量的零。所有表达式都将完全用括号括起来,例如你 只会给出“(1+(23))-4”,而不是“1+23-4”。您的实现应该返回 这种形式的任何可能表达的正确结果。 是一项复杂的任务,可能需要多个辅助函数。这是一个建议 1 方法,尽管只要正确,您可以采用不同的方法:

  1. 编写一个函数读取 number(s,i),它接受一个字符串 s 和一个整数 I,并返回一个 对包含 (i) 从字符串的第 i 个字符开始的数字,以及 (ii) 数字最后一个字符后的索引。例如,读取 number("1+(2.4/3)",3) 应该返回 (2.4,6) 因为 "2.4" 由给定字符串的第 3 到 5 个字符组成。

解决方法

遍历所有字符,并检查条件

double d=0;
int j=0;
int di=-1;
for(j=i;j<s.length();j++)
{
char c=s.charAt(j);
if(c>='0'&&c<='9')
{
d=d*10+((int)(c-'0'));
}
else if(c=='.')
di=j;
else 
break;
}
if(di>=0)
 d/=Math.pow(10,j-di);

这里 d 是值,j 是索引。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...