罗马java_Java 数字转换成罗马字
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 数字转换成罗马字相关推荐
- 中文数字转换成阿拉伯数字(一千二百三十四万五千六百七十八-->12345678)
昨天老大问我又没有写过中文数字转换成阿拉伯数字,我说没有,我说那应该简单啊,就是将中文对应的数字换成阿拉伯数字就好了啊,比如一就换成1,二就换成2-十换成10.可是那么问题来了- 一十二呢-不能是11 ...
- C# 数字转换成数组
C# 数字转换成数组 /// <summary>/// 将整型转成整型数组/// </summary>/// <example>10 转成 num[0]=1 num ...
- 将数字转换成中文金额的大写形式
package com.unteck.fms.web.businessdata.controller; import org.springframework.beans.factory.annotat ...
- python 把数字转换成中文大写
def conversionString(intnumber):'''把数字转换成中文大写,例如:1->一 ,25->二十五,49->四十九Parameters----------i ...
- 浮点数字转换成人民币的大写字体
新开博客,贴上一段平常时写的代码,权当记录和分享. 下面是代码块(有比较详细的注释,转换过程中需要注意的是0的处理): //浮点数字转换成人民币的大写字体 import java.util.Scann ...
- html 将数字转为汉字,怎么将wps中的数字转换成汉字 wps将数字转换汉字的步骤教程...
在WPS编辑表格数据时,如果我们想要将表格中的数字全部转换成汉字,该如何转换?方法其实很简单,不过还有很多用户不太清楚转换方法,下面教程之家网为大家分享wps将数字转换汉字的步骤教程,不会转换的朋友可 ...
- C#数字转换成中文大写
/// <summary> /// 单个数字转为大写 /// </summary> /// <param name="c">小写阿拉伯数字 0- ...
- php数字转英文,PHP金额数字转换成英文
PHP金额数字转换成英文 $numTable[40]="FORTY "; $numTable[50]="FIFTY "; $numTable[60]=" ...
- 如何将数字转换成口语中的文本串
概述 今天突发奇想, 写一个将数字转换成中文字符串的函数. 并不是将 1234 转成 '1234' , 而是将 1234 转成 '一千二百三十四'. 本来以为很简单, 写下来之后发现还是有些坑的. 尝 ...
最新文章
- 使用rpmbuild对ceph的源码包进行重新打包
- HttpServlet详解
- OpenGL ES3 0实现简单粒子火焰效果
- Git远程和分支管理
- 跑赢A股95%的公司,半年大涨115%!明年的海尔智家更令人期待!
- ad中那个快捷键是重复上一部_十大快捷键:让PPT制作效率飞起!(附下载)
- 批量查询,mget语法,mget批量查询(来自学习资料,第26节)
- 迪杰斯特拉--- 模板(求最短路径/输出路径/所有路径都可以走的做法)
- mysql安装完成后登入错误
- UI之常用通过颜色值和透明度怎么得到最后的颜色值
- 仍有很多企业并未修复微软 Hyber-V 的严重漏洞
- 无线网络(预处理+并查集)
- 红茶一杯话Binder(初始篇)
- html游戏抓包,常用的网页抓包工具
- hp 126NW驱动安装
- 网页三栏布局五种实现方式(左中右)
- 在顺丰的历史上,扩大规模的资金来源
- iphone 中的大小和像素问题
- 专访阿里巴巴量子实验室:最强量子电路模拟器“太章”到底强在哪? 1
- BiFunction介绍