利用Java怎么对罗马数字与阿拉伯数字进行转换

  介绍

这篇文章主要介绍了利用Java怎么对罗马数字与阿拉伯数字进行转换,此处通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下:

Java可以用来干什么

Java主要应用于:1。网页开发;2。Android开发;3。客户端开发;4。网页开发;5。企业级应用开发;6。Java大数据开发;7。游戏开发等。

罗马数字的表示主要依赖以下几个基本符号:

,,,小姐:1
,,,V 5
,,,X 10
,,,L 50
,,,C 100年
,,,D 500年
,,,M 1000年

这里,我们只介绍一下1000年以内的数字的表示法。

单个符号重复多少次,就表示多少倍。最多重复3次。比如:CCC表示300,XX表示,但150年并不用微光表示,这个规则仅适用于我X C m .

如果相邻级别的大单位在右,小单位在左,表示大单位中扣除小单位比。如:IX表示9,4第四表示,XL表示40更多的示例参见下表,你找到规律了吗?

我1
2 2
第三,第四3
,
4 V, 5
第六,第七6
,
7八世,8
第九,9 X

,
10, 11第十二
,
十三12、13
十四14
十五15
十六16
十七17
十八18第十九
,
XX 19日20
第二十一章,
第二十二21日,22日第29
,
XXX, 29日30
第23,34第45
,
35 XXXIX, 39
XL, 40 L
,
50, 51
LV, 55
LX, 60
LXV, 65
LXXX 80
XC 90
XCIII 93
XCV 95
XCVIII 98
XCIX, 99 C

,
100 CC, CCC, 200
300
CD, 400 D
,
500, 600
DCC, 700
DCCC,
800厘米,900
CMXCIX 999

本题目的要求的是:请编写程序,由用户输入若干个罗马数字串,程序输出对应的十进制表示。

输入格式是:第一行是整数n,表示接下来有n个罗马数字(n<100)。以后每行一个罗马数字。罗马数字大小不超过999 .

要求程序输出n行,就是罗马数字对应的十进制数据。

例如,用户输入:

3
LXXX
XCIII
DCCII

则程序应该输出:

80
93
702

import  java.util.Scanner;/* *   ,*请编写程序,由用户输入若干个罗马数字串,程序输出对应的十进制表示。   ,*   ,*输入格式是:第一行是整数n,表示接下来有n个罗马数字(n<100)。以后每行一个罗马数字。罗马数字大小不超过999。   ,*   ,*要求程序输出n行,就是罗马数字对应的十进制数据。   ,*   ,*,例如,用户输入:,3,LXXX  XCIII  DCCII   ,*   ,*则程序应该输出:,80,93,702   ,*   ,* @author 管理员   ,*   ,*/public  class  RomeToArabic  {   public 才能;static  void  main (String [], args), {   ,,,//,TODO  Auto-generated  method 存根   ,,,System.out.println(“测试结果:“);   ,,,Scanner  mScanner =, new 扫描仪(系统);   ,,,System.out.println (r2a (mScanner.nextLine ()));   ,,,System.out.println (a2r (mScanner.nextInt ()));   ,,}   ,/* *   ,,*,把罗马数字转换为阿拉伯数字   ,,*   ,,*,@param  m   ,,* @return   ,,*/public 才能static  int  r2a (String 米),{   ,,,int 图[],=,new  int [400];   ,,,图(& # 39;我# 39;],=,1;   ,,,图(& # 39;v # 39;],=, 5;   ,,,图(& # 39;x # 39;],=, 10;   ,,,图(& # 39;l # 39;],=, 50;   ,,,图(& # 39;c # 39;],=, 100;   ,,,图(& # 39;d # 39;],=, 500;   ,,,图[& # 39;猴子# 39;],=,1000;   ,,,char [], num =, m.toCharArray ();   ,,,int  sum =,图(num [0]);   ,,,for  (int 小姐:=,0;,小姐:& lt;, num.length 作用;1;,我+ +),{   ,,,,,if (图(num[我]],祝辞=,图(num[小姐:+,- 1]]),{   ,,,,,,,sum  +=,图(num[小姐:+,- 1]];   ,,,,,},{else    ,,,,,,,sum =, sum  +,图(num[小姐:+,- 1]],安康;2,*,图(num[我]];   ,,,,,}   ,,,}   ,,,return 总和;   ,,}   ,/* *   ,,*,把阿拉伯数字转换为罗马数字   ,,*   ,,*,@param 数字   ,,* @return   ,,*/public 才能static  String  a2r (int 编号),{   ,,,String  rNumber =,““   ,,,int [], aArray =, {, 1000, 900, 500, 400, 100, 90,,,,,,,,,,,,,, 1,};   ,,,String [], rArray =, {,“M",,“CM",,“D",,“CD",,“C",,“XC",,“L",,“XL",,“X",   ,,,,,,,“IX",,“V",,“IV",,“我,};   ,,,if  (number  & lt;, 1, | |, number 祝辞,3999),{   ,,,,,rNumber =,“1”;   ,,,},{else    null   null   null   null   null   null   null   null   null   null

利用Java怎么对罗马数字与阿拉伯数字进行转换