因此,如果用户使用 Scanner 键入 7,@@@@@@@ (7) 将是输出。我将不得不使用 for 循环语句,但我至少可以弄清楚那么多。只需要帮助找出将单词数字转换为数字数字并最终转换为随机字符的方法。
最佳答案
您需要做的第一件事是将有效数字字符串“十”、“二十五”等转换为数字,然后将该数字传递到循环中。
因此,您基本上需要编写一个 token 解析器来将单词转换为数字。然后定义标记将允许您轻松转换为 int。 (在这个例子中我只打算处理整数)。
明显的标记:
- 一、二、三等(一到十九)。 (称之为数字)。
- 二十、三十、四十等(二十到九十)。 (称之为十)
- 百、千等(称之为幂)
用“”、“和”、“-”作为分隔符(106、25的常用写法)
然后您可以将字符串解析为标记,这应该会为您提供转换为 int 的规则。从右开始向左工作,你遵循一定的规则。一次递归地处理两个标记。沿途添加。幂是一种特殊情况,您将乘以前面的数字。
例如,“一百二十七”将转换为标记:
十位数的幂
这将使用规则 (DIGIT + TENS) + (DIGIT * POWER)
或
(7 + 20) + (1 * 100) = 127
转换后,您可以使用 for 循环轻松转换为重复字符串。
我希望这能让你开始朝着正确的方向前进。
关于java - 将输入的单词数字(如七)转换为字符(如@),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1583021/