问题标签 [roman-numerals]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
296 浏览

c++ - 需要格式化字符串中的字符优先级

我目前正在写一个罗马数字转换器来取乐。该问题适用于上述字符优先级。

由于罗马数字不是位置数字,即 III 不表示 1*whatever base^2 + 1*whatever base^1 + 1*whatever base^0。

当有人输入 XIV 时,这当然会变得很困难,我需要确保在这种情况下不添加 I,而是减去。我不知道该怎么做。解决这个问题的最佳方法是什么?

我将罗马符号及其各自的十进制数字都存储在数组中:

所以通过简单地检查数组中的优先级,即如果符号小于下一个符号,即在示例“XIV”中,如果“I”更小,我就不会太难暴力破解该死的东西比'V',在这种情况下,这是因为我已将它们排序在数组中,然后我可以让它减去值而不是加法。

但这似乎是一个非常丑陋的解决方案。有没有更好的?我在想一些类似于正则表达式的东西(如果这听起来像一个可怕的想法,请原谅我,我还没有使用过 RegExp,但听起来它可以满足我的需要,那就是确定字符串中的字符.)

0 投票
2 回答
2856 浏览

regex - 用于从文本文件中过滤罗马数字的单个正则表达式

我陷入了一个问题,即只允许通过一次正则表达式(一些旧的硬代码)。我需要罗马数字的正则表达式。

我已经尝试过标准的 ie ^(?i)M*(D?C{0,3}|C[DM])(L?X{0,3}|X[LC])(V?I{0,3}|I[VX])$,但问题是它也允许 null( '') 值。

有什么办法可以检查问题吗?

0 投票
5 回答
7816 浏览

latex - latex:用罗马数字打印变量

我在 LaTeX 中排版,我想用罗马而不是默认的阿拉伯语显示一个“变量”(在我的例子中,引用 \ref{blah} 到列表中的项目编号)。是否有捷径可寻?感谢您的任何指点!

0 投票
2 回答
24925 浏览

latex - “缺少数字,视为零。” 在乳胶中

我想得到 2 的罗马数字。所以我使用$\Roman{2}$内部文本。但后来我得到了一个错误

缺少数字,视为零。

我该如何解决?

谢谢并恭祝安康!

0 投票
1 回答
601 浏览

php - php 的 preg_match 为相同的模式返回不同数量的匹配项

我正在尝试使用罗马数字到整数转换器的 preg_match。问题是,对于某些输入, preg_replace 似乎给出的匹配太少了。编码:

但是任何以“IV”结尾的罗马数字都会切断最后 3 个匹配项($matches 将只包含元素 0-16 而不是完整的 0-19),同样任何以“IX”结尾的罗马数字都会切断最后一个匹配项4场比赛。

这是预期的行为,还是我的 PHP 有问题?

0 投票
3 回答
3034 浏览

java - Java——从标准输入读取,一次一个字符

我无法确定读取 Java 程序某些输入的最佳方式。它需要读入一个罗马数字的单个字符,然后对其进行一些操作。

然而,有几个问题。输入必须从标准输入中读取,因为正在使用输入重定向。

此外,我需要能够检测到这对 CR/LF 字符来确定行尾,以及 EOF 来确定文件的结尾。

实现这一目标的最佳方法是什么?我四处窥探,发现 Scanner 没有 .nextChar 类(本来可以很好地工作)。

0 投票
2 回答
1008 浏览

regex - 用于匹配各种类型编号列表的正则表达式

我想创建一个(PCRE)正则表达式来匹配所有常用的编号列表,并且我想分享我的想法并收集有关执行此操作的输入。

我将“列表”定义为一组规范的盎格鲁-撒克逊约定,即

数字

信件

罗马数字

我想知道这组列表有多强,是否应该有其他编号约定,以及是否应该删除其中的任何一个。

这是我为解决此问题而创建的正则表达式(在Python中):

我想知道这个正则表达式对于这个问题有多充分,以及是否有其他替代(正则表达式或其他)解决方案。

顺便说一句,对于我的特定用例,我不希望列表编号超过 25-50。

感谢您的阅读。

布赖恩

0 投票
1 回答
987 浏览

scala - 在 Scala 中使用类型参数和 mixin

编辑2:

我通过使用 mixin 和类型参数的组合以及下面的代码,成功地实现了我在使用 RomanNumerals 的练习中想要的类型安全。本质上,它的作用是在导入RomanNumerals我能够编写的所有内容之后L X V I,但不是L LX L X导致我得到一个类型不匹配的编译器错误(因为这些将是罗马数字的非法组合)。现在我想知道这种使用特征、混合和类型参数的方式是否被认为是可以的,或者我是否在滥用语言可以这么说:) 有没有更好的方法来通过一些更简单/更清洁的方式实现相同的类型安全代码?

编辑:

基于 Victors answere 的进一步问题。好的,但是如果我为类型参数添加上限和下限以使 B 成为特征呢?例如

或者B在这种情况下可能仍然是一个类?如果我知道 f 参数也适用于 typeFoo[B] with B怎么办?有没有办法使用它B与返回类型混合?

下面的原始问题

我想混合在 Scala 中创建对象时作为类型参数获得的特征:

这会导致编译错误:

我也试过:

但这不起作用:

有什么办法可以解决这个问题吗?这样withM的返回类型就变成了传入的类型参数Foo with B在哪里BwithM

0 投票
1 回答
925 浏览

itextsharp - pdf首页上的自定义页码(罗马编号)

我需要在我正在创建的 pdf 上设置页码,以便前 3 页是 i、ii、iii,然后是从 1、2、3、4、5 开始的以下页面......等等。 .

我怎么能用 itextsharp 做到这一点?谢谢桑德

0 投票
4 回答
8265 浏览

java - 你如何找到一个等价于一个整数的罗马数字

你如何找到一个与整数等效的罗马数字。是否有提供此功能的 java 库?

我确实找到了一个类似的问题,但我更喜欢这个问题的开箱即用 API 抽象。处理代码中所有可能的组合只是很痛苦。