gpt4 book ai didi

java - 以字符串格式标记代数表达式

转载 作者:搜寻专家 更新时间:2023-11-01 01:44:06 25 4
gpt4 key购买 nike

我正在尝试采用表示完整代数表达式的字符串,例如 x = 15 * 6/3 ,这是一个字符串,并将其标记为各个组件。所以第一个是 x,然后是 =,然后是 15,然后是 *、6、/,最后是 3。

我遇到的问题实际上是解析字符串并查看各个字符。如果没有大量的 if 语句,我想不出一种方法来做到这一点。当然,必须有更好的方法来具体定义每个单独的案例并对其进行测试。

最佳答案

对于每种类型的 token ,您需要弄清楚如何识别:

  • 当您开始阅读特定标记时
  • 如果您继续阅读同一个标记,或者您已经开始阅读另一个标记

让我们举个例子:x=15*6/3。假设您不能相信每个标记之间有空格这一事实。在那种情况下,这很简单:当您到达一个空间时,您的新 token 就开始了。

您可以将字符类型分解为字母、数字和符号。我们将 token 类型称为变量、运算符和数字。

一个字母表示变量 token 已经开始。它会一直持续到您阅读非字母为止。

符号表示运算符(operator) token 的开始。我只看到单个符号,但您可以让符号组对应于不同的运算符标记。

一个数字表示数字标记的开始。 (现在让我们假设整数。)数字标记会一直持续到您读取非数字为止。

基本上,这就是一个简单的符号解析器的工作原理。现在,如果您添加负数(其中“-”符号可以有多种含义)、括号或函数名称(如 sin(x)),那么事情会变得更复杂,但它的数量遵循同一套规则,现在只是有了更多选择。

关于java - 以字符串格式标记代数表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17157559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com