Converter .java

package main;

/**

* @author cm_wang

*

* 转换工具类

*/

public class Converter {

public static final String[][] str = {

{"","I","II","III","IV","V","VI","VII","VIII","IX"}, // 个位数举例

{"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"}, // 十位数举例

{"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"}, // 百位数举例

{"","M","MM","MMM"} // 千位数举例

};

/**

* @param nubmer

* @return

*

* 思路是:千位先除以1000然后模10,百位先除以100然后模10,十位先除以10然后模10,个位直接模10.

*/

public static String convert(String strNubmer) {

StringBuilder strBuilder = new StringBuilder();

int number = Integer.parseInt(strNubmer);

strBuilder.append(str[3][number/1000%10]);

strBuilder.append(str[2][number/100%10]);

strBuilder.append(str[1][number/10%10]);

strBuilder.append(str[0][number%10]);

return strBuilder.toString();

}

}

InputHelper.java

package main;

import java.util.regex.Pattern;

import java.util.regex.Matcher;

/**

* @author cm_wang

*

* 过滤工具类

*/

public class InputHelper {

/**

* @param str

* @return 过滤后的数字

*

* 过滤掉除了数字以外的所有非法字符。

*/

public static String getNumber(String str) {

String regEx = "[^0-9]";

Pattern p = Pattern.compile(regEx);

Matcher m = p.matcher(str);

return m.replaceAll("").trim();

}

}

Roman.java

package main;

import static main.Converter.*;

import static main.InputHelper.*;

import java.util.Scanner;

/**

* @author cm_wang

*

* main class.

*/

public class Roman {

@SuppressWarnings("resource")

public static void main(String[] args) throws Exception {

while(true){

System.out.println();

System.out.print("请输入0~3999的阿拉伯数字:");

Scanner sc = new Scanner(System.in);

String str = getNumber(sc.nextLine());

try {

System.out.println("转换后的罗马数字为:" + convert(str));

}catch(Exception e) {

System.out.println("非法字符,请输入数字!");

}

}

}

}

罗马java_Java 数字转换成罗马字相关推荐

  1. 中文数字转换成阿拉伯数字(一千二百三十四万五千六百七十八-->12345678)

    昨天老大问我又没有写过中文数字转换成阿拉伯数字,我说没有,我说那应该简单啊,就是将中文对应的数字换成阿拉伯数字就好了啊,比如一就换成1,二就换成2-十换成10.可是那么问题来了- 一十二呢-不能是11 ...

  2. C# 数字转换成数组

    C# 数字转换成数组 /// <summary>/// 将整型转成整型数组/// </summary>/// <example>10 转成 num[0]=1 num ...

  3. 将数字转换成中文金额的大写形式

    package com.unteck.fms.web.businessdata.controller; import org.springframework.beans.factory.annotat ...

  4. python 把数字转换成中文大写

    def conversionString(intnumber):'''把数字转换成中文大写,例如:1->一 ,25->二十五,49->四十九Parameters----------i ...

  5. 浮点数字转换成人民币的大写字体

    新开博客,贴上一段平常时写的代码,权当记录和分享. 下面是代码块(有比较详细的注释,转换过程中需要注意的是0的处理): //浮点数字转换成人民币的大写字体 import java.util.Scann ...

  6. html 将数字转为汉字,怎么将wps中的数字转换成汉字 wps将数字转换汉字的步骤教程...

    在WPS编辑表格数据时,如果我们想要将表格中的数字全部转换成汉字,该如何转换?方法其实很简单,不过还有很多用户不太清楚转换方法,下面教程之家网为大家分享wps将数字转换汉字的步骤教程,不会转换的朋友可 ...

  7. C#数字转换成中文大写

    /// <summary> /// 单个数字转为大写 /// </summary> /// <param name="c">小写阿拉伯数字 0- ...

  8. php数字转英文,PHP金额数字转换成英文

    PHP金额数字转换成英文 $numTable[40]="FORTY "; $numTable[50]="FIFTY "; $numTable[60]=" ...

  9. 如何将数字转换成口语中的文本串

    概述 今天突发奇想, 写一个将数字转换成中文字符串的函数. 并不是将 1234 转成 '1234' , 而是将 1234 转成 '一千二百三十四'. 本来以为很简单, 写下来之后发现还是有些坑的. 尝 ...

最新文章

  1. 使用rpmbuild对ceph的源码包进行重新打包
  2. HttpServlet详解
  3. OpenGL ES3 0实现简单粒子火焰效果
  4. Git远程和分支管理
  5. 跑赢A股95%的公司,半年大涨115%!明年的海尔智家更令人期待!
  6. ad中那个快捷键是重复上一部_十大快捷键:让PPT制作效率飞起!(附下载)
  7. 批量查询,mget语法,mget批量查询(来自学习资料,第26节)
  8. 迪杰斯特拉--- 模板(求最短路径/输出路径/所有路径都可以走的做法)
  9. mysql安装完成后登入错误
  10. UI之常用通过颜色值和透明度怎么得到最后的颜色值
  11. 仍有很多企业并未修复微软 Hyber-V 的严重漏洞
  12. 无线网络(预处理+并查集)
  13. 红茶一杯话Binder(初始篇)
  14. html游戏抓包,常用的网页抓包工具
  15. hp 126NW驱动安装
  16. 网页三栏布局五种实现方式(左中右)
  17. 在顺丰的历史上,扩大规模的资金来源
  18. iphone 中的大小和像素问题
  19. 专访阿里巴巴量子实验室:最强量子电路模拟器“太章”到底强在哪? 1
  20. BiFunction介绍

热门文章

  1. 【负荷预测】基于灰色预测算法的负荷预测(Python代码实现)
  2. PSP各型号主板防止变砖的应对策略
  3. 选择Seo老域名的方法
  4. 深入理解百度在离线混部技术
  5. 交通银行香港分行实施 Linux 前端系统的开发手记
  6. 软件测试工程师2022年的三阶段总结
  7. web版扫雷小游戏(一)
  8. 网管必备-CMD命令
  9. PMP试题 | 每日一练,快速提分(十一)
  10. 【软考备考-综合知识】计算机系统知识