如何从 Java 中的字符串中拆分数字?

hel*_*rld 5 java string

我在想一种分割字符串数量的方法时遇到了问题。我已经做的是将字符串拆分为多个字符。

所以如果表达式是gi356f 它会给出:

g
i
3
5
6
f
Run Code Online (Sandbox Code Playgroud)

但我希望 356 就其本身而言被视为一个数字。我正在处理的问题由看起来像的字符串组成(345+3)*/3

我尝试查看字符串中的当前字符和下一个字符,并尝试检查它是否是数字,如果是,则附加它们,但这导致了许多错误。例如,它只能处理两位长的数字,也不能很好地处理,如果字符串是 43,它会使用 3 两次。(例如,一次是 43 次,一次是 3 次)。此外,如果最后的表达式以给定字符串的数字结尾,if 也会被处理两次。

我不知道如何解决这个问题。我想也许可以使用正则表达式或扫描仪,但不确定如何去做,即使在网上查看了一些较小示例的代码之后。

Gau*_*rav 2

堆栈数据结构可能会有所帮助。所以你可以这样做:

  1. 扫描每个字符。
  2. 检查该字符是否为数字。如果是,则入栈。
  3. 继续将字符添加到堆栈中,直到获得任何非数字字符。
  4. 一旦获得非数字字符,就从堆栈中取出所有数字字符并转换为数字。
  5. 继续直到字符未完成。