作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想获取存储在对象中的罗马数字值并将其转换回整数、长整型、浮点型和 double 值。除了创建适当的方法之外,我真的不知道从哪里开始。谁能提供一些建议吗?
谢谢!
最佳答案
您的问题似乎是如何将罗马数字转换为整数。在这种情况下,您所需要的只是一个从左到右解析字符串并将结果加在一起的函数,同时查找应减去的较小数字。
class RomanNumeral{
String roman;
public RomanNumeral(String roman){
this.roman = roman;
}
public RomanNumeral Clone(){
return new RomanNumeral(this.roman);
}
public int GetValue(){
int sum = 0;
int carry = 0;
for(int i = 0; i< roman.Length;i++)
{
if(i<roman.Length-1){
if(GetRomanValue(roman[i])>GetRomanValue(roman[i+1])){
sum += GetRomanValue(roman[i]) - carry;
carry = 0;
}
else carry = GetRomanValue(roman[i]);
}
else sum += GetRomanValue(roman[i]) - carry;
}
}
int GetRomanValue(char c)
{
switch(c){
case 'I': return 1;
case 'V': return 5;
//and so on...
}
}
}
获得整数后,您可以将其转换为其他数字类型。
关于java - 如何创建 RomanNumeral 对象并将其转换回 int、long 等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11312738/
我是一名优秀的程序员,十分优秀!