java - 将输入的单词数字(如七)转换为字符(如@)

标签 java algorithm loops for-loop

因此,如果用户使用 Scanner 键入 7,@@@@@@@ (7) 将是输出。我将不得不使用 for 循环语句,但我至少可以弄清楚那么多。只需要帮助找出将单词数字转换为数字数字并最终转换为随机字符的方法。

最佳答案

您需要做的第一件事是将有效数字字符串“十”、“二十五”等转换为数字,然后将该数字传递到循环中。

因此,您基本上需要编写一个 token 解析器来将单词转换为数字。然后定义标记将允许您轻松转换为 int。 (在这个例子中我只打算处理整数)。

明显的标记:

  1. 一、二、三等(一到十九)。 (称之为数字)。
  2. 二十、三十、四十等(二十到九十)。 (称之为十)
  3. 百、千等(称之为幂)

用“”、“和”、“-”作为分隔符(106、25的常用写法)

然后您可以将字符串解析为标记,这应该会为您提供转换为 int 的规则。从右开始向左工作,你遵循一定的规则。一次递归地处理两个标记。沿途添加。幂是一种特殊情况,您将乘以前面的数字。

例如,“一百二十七”将转换为标记:

十位数的幂

这将使用规则 (DIGIT + TENS) + (DIGIT * POWER)

(7 + 20) + (1 * 100) = 127

转换后,您可以使用 for 循环轻松转换为重复字符串。

我希望这能让你开始朝着正确的方向前进。

关于java - 将输入的单词数字(如七)转换为字符(如@),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1583021/

相关文章:

c++ - 如何在这里创建一个循环? C++

java - Keycloak 自定义以在身份验证流程中运行自定义 java

java - 尝试使用 Android 显示 openGL 图形

java - SQLException 错误号 :150 during gradle build

arrays - 给定一个有序数组,其中有几个数字是颠倒的。如何排序?

c - 如何将一个整数分成多个数字?

performance - 快速 SSE 阈值算法

java - Java 新手,学习很快,但不明白为什么我的 for 循环不会打印

sql - 当需要计数器时,避免在 SQL 中使用 while 循环

java - 是什么导致我的代码卡住?我没主意了