当前位置: 首页 > 面试题库 >

在PHP中将单词转换为数字

束研
2023-03-14
问题内容

我正在尝试将以单词形式编写的数值转换为整数。例如,“ iPhone有233.7万个应用程序”将变成“ iPhone为230783个应用程序”

在开始编码之前,我想知道此转换是否存在任何功能/代码。


问题答案:

有很多页面讨论从数字到单词的转换。反方向的数量不多。
以获取一种不错的算法:

好吧,总的来说,您正在做两件事:查找标记(转换为数字的单词)和应用语法。简而言之,您正在为一种非常有限的语言构建解析器。

您需要的令牌是:

力量:千,百万,十亿
一百:十
十:二十,三十…九十
单位:一,二,三,…九,
特殊:十,十一,十二,…十九

(删除所有没有意义的“和”。将连字符分成两个记号。即应将“ 65”处理为“ 60”“五个”)

标记完字符串后,从右向左移动。

  1. 从右侧抓取所有标记,直到您击中POWER或整个弦为止。

  2. 在这些模式的停止点之后解析令牌:

特殊

单位
十单位
一百
单位一百特殊
单位一百
单位一百
单位一百单位

(这假定该语法中不允许“一千七百”)

这将为您提供电话号码的后三位数字。

  1. 如果您停在整个字符串上,那么您就完成了。

  2. 如果您停在电源处,请从步骤1重新开始,直到达到较高的电源或整个弦为止。



 类似资料:
  • 问题内容: 我写了一个非常简单的查询,结果为500,我需要像下面这样转换该值:- 问题答案: 用力卢克;) SqlFiddleDemo 提示采用拼写形式。 编辑: 添加对以下内容的支持: SqlFiddleDemo 编辑2: 添加对float的有限支持: SqlFiddleDemo3 编辑3: 10.3的输出为十点三,但10.3的输出为十点三,10.03的输出为十点三。我怎样才能做到这一点? 根据

  • 问题内容: 当我在mysql中执行查询时,我尝试按以下方式打印输出。 Salary列的值为45000,第三列中的第二列中的Value通过Query转换为单词。 我找到了一些文章,在Oracle中可以使用以下查询获得如上所述的结果: 输出: 在MySQL中,我尝试了LPAD,RPAD,但那些只是将字符串添加到结果中,而不是将单词转换为字符串。 我找到了一些教程,但所有这些教程都对“ TO_CHAR(

  • 将给定的字符串转换为单词数组。 使用 String.split() 提供的模式(pattern)(默认为非 alpha 作为正则表达式)来转换为一个字符串数组。 使用 Array.filter() 去除任何空字符。 省略第二个参数来使用默认的正则表达式。 const words = (str, pattern = /[^a-zA-Z-]+/) => str.split(pattern).filte

  • 问题内容: 有没有一种方法可以使用内置函数在PHP中将指数数转换为整数?格式化功能? 1.2378147769392E + 14至123781477693917 问题答案: number_format(1.2378147769392E+14,0,’‘,’‘) 但是,要处理大量数字,如果要保持精度,应该研究BCMath扩展

  • 问题内容: 有没有一种方法可以将整数转换为PHP中的字符串? 问题答案: 您可以使用该函数将数字转换为字符串。 从维护的角度来看,它显然是您正在尝试做的事情,而不是其他一些更深奥的答案。当然,这取决于您的上下文。

  • 问题内容: 在PHP中,有没有一种简单的方法可以将数字转换为单词?举例来说, 27 到 27 。 问题答案: 我在网上找到了一些(2007/2008)源代码,它具有版权,但是我可以自由使用它,并根据需要对其进行修改,因此将其放在此处并在CC-Wiki下重新许可: