键盘录入一个字符串,

要求1:长度为小于等于9

要求2:只能是数字,将内容变成罗马数字

下面是阿拉伯数字跟罗马数字的对比关系:

Ⅰ-1、Ⅱ-2、Ⅲ-3、Ⅳ-4、Ⅴ-5、Ⅵ-6、Ⅶ-7、Ⅷ-8、Ⅸ-9

注意:罗马数字里面是没有0的,如果键盘录入的数字包含0,可以变成""(长度为0的字符串)

方法一:

/** Copyright (c) 2017, 2023, zxy.cn All rights reserved.**/
package cn.stringbuilderdemo;import java.util.Scanner;/*** <p>Description:将阿拉伯数字变成罗马数字* 键盘录入一个字符串,* 要求1:长度为小于等于9* 要求2:只能是数字,将内容变成罗马数字* 下面是阿拉伯数字跟罗马数字的对比关系:* Ⅰ-1、Ⅱ-2、Ⅲ-3、Ⅳ-4、Ⅴ-5、Ⅵ-6、Ⅶ-7、Ⅷ-8、Ⅸ-9* 注意:罗马数字里面是没有0的,如果键盘录入的数字包含0,可以变成""(长度为0的字符串)</p>* <p>Class:</p>* <p>Powered by zxy On 2023/6/9 21:30 </p>** @author zxy [zxy06291@163.com]* @version 1.0* @since 17*/
public class TestCase1 {public static void main(String[] args) {//1.键盘录入一个字符串//书写Scanner 的代码Scanner sc = new Scanner(System.in);String str;while (true) {System.out.println("请输入一个字符串");str = sc.next();//2.校验字符串是否满足规则boolean flag = checkStr(str);if (flag){break;}else {System.out.println("当前的字符串不符合规则,请重新输入");continue;}}//将内容变成罗马数字// 下面是阿拉伯数字跟罗马数字的对比关系:// Ⅰ-1、Ⅱ-2、Ⅲ-3、Ⅳ-4、Ⅴ-5、Ⅵ-6、Ⅶ-7、Ⅷ-8、Ⅸ-9//查表法:数字跟数据产生一个对应关系StringBuilder sb = new StringBuilder();for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);int number = c - 48;//1 2 3 4 5String s = changeLuoMa(number);sb.append(s);}System.out.println(sb);}public  static String changeLuoMa(int number){//定义一个数组,让索引跟罗马数字产生一个对应关系//Ⅰ-1、Ⅱ-2、Ⅲ-3、Ⅳ-4、Ⅴ-5、Ⅵ-6、Ⅶ-7、Ⅷ-8、Ⅸ-9String[] arr={"","Ⅰ","Ⅱ","Ⅲ","Ⅳ","Ⅴ","Ⅵ","Ⅶ","Ⅷ","Ⅸ"};return arr[number];}public static boolean checkStr(String str){//123456//要求1:长度为小于等于9if(str.length()>9){return false;}
//        要求2:只能是数字for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);//0-9if (c<'0' || c>'9'){return false;}}//只有当字符串里面所有的字符全都判断完毕了,我才能认为当前的字符串是符合规则return true;}}

方法二:

使用switch方法

/** Copyright (c) 2017, 2023, zxy.cn All rights reserved.**/
package cn.stringbuilderdemo;import java.util.Scanner;/*** <p>Description:将阿拉伯数字变成罗马数字* 键盘录入一个字符串,* 要求1:长度为小于等于9* 要求2:只能是数字,将内容变成罗马数字* 下面是阿拉伯数字跟罗马数字的对比关系:* Ⅰ-1、Ⅱ-2、Ⅲ-3、Ⅳ-4、Ⅴ-5、Ⅵ-6、Ⅶ-7、Ⅷ-8、Ⅸ-9* 注意:罗马数字里面是没有0的,如果键盘录入的数字包含0,可以变成""(长度为0的字符串)</p>* <p>Class:</p>* <p>Powered by zxy On 2023/6/9 21:30 </p>** @author zxy [zxy06291@163.com]* @version 1.0* @since 17*/
public class TestCase2 {public static void main(String[] args) {//1.键盘录入一个字符串//书写Scanner 的代码Scanner sc = new Scanner(System.in);String str;while (true) {System.out.println("请输入一个字符串");str = sc.next();//2.校验字符串是否满足规则boolean flag = checkStr(str);if (flag){break;}else {System.out.println("当前的字符串不符合规则,请重新输入");continue;}}//将内容变成罗马数字// 下面是阿拉伯数字跟罗马数字的对比关系:// Ⅰ-1、Ⅱ-2、Ⅲ-3、Ⅳ-4、Ⅴ-5、Ⅵ-6、Ⅶ-7、Ⅷ-8、Ⅸ-9//查表法:数字跟数据产生一个对应关系StringBuilder sb = new StringBuilder();for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);String s = changeLuoMa(c);sb.append(s);}System.out.println(sb);}public  static String changeLuoMa(int number){
//        String[] arr={"","Ⅰ","Ⅱ","Ⅲ","Ⅳ","Ⅴ","Ⅵ","Ⅶ","Ⅷ","Ⅸ"};String str = switch (number){case '0' -> "";case '1' -> "Ⅰ";case '2' -> "Ⅱ";case '3' -> "Ⅲ";case '4' -> "Ⅳ";case '5' -> "Ⅴ";case '6' -> "Ⅵ";case '7' -> "Ⅶ";case '8' -> "Ⅷ";case '9' -> "Ⅸ";default -> str ="";};return str;}public static boolean checkStr(String str){//123456//要求1:长度为小于等于9if(str.length()>9){return false;}
//        要求2:只能是数字for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);//0-9if (c<'0' || c>'9'){return false;}}//只有当字符串里面所有的字符全都判断完毕了,我才能认为当前的字符串是符合规则return true;}}

将阿拉伯数字变成罗马数字 案例相关推荐

  1. Java小案例----阿拉伯数字转换为罗马数字

    在日常需求中,常常会将数字转换为另外一种形式,如阿拉伯数字转中文的,或者是转成支票中出现的中文数字,还有转成英语的,其实原理都大同小异,本次的需求是,是将用户输入的阿拉伯数字转换为罗马数字(长度不能超 ...

  2. 阿拉伯数字转为罗马数字

    :: Arab2Roman 阿拉伯数字转为罗马数字 @echo off setlocal EnableDelayedExpansion :test if "%~0"==" ...

  3. 罗马数字转换成数字java_C趣味编程百例(31)将阿拉伯数字转换为罗马数字

    95.将阿拉伯数字转换为罗马数字 将大于0小于1000的阿拉伯数字转换为罗马数字.阿拉伯数字与罗马数字的对应关系如下: *问题分析与算法设计 题目中给出了阿拉伯数字与罗马数字的对应关系,题中的数字转换 ...

  4. python罗马数字转换阿拉伯数字_Python将阿拉伯数字转换为罗马数字的方法

    本文实例讲述了Python将阿拉伯数字转换为罗马数字的方法.分享给大家供大家参考.具体实现方法如下: def numToRomanNum(Num): """digital ...

  5. 送给大家一个把阿拉伯数字与罗马数字互换的代码 -.- 仅支持4000以下的转化

    基本字符 I V X L C D M 相应的阿拉伯数字表示为 1 5 10 50 100 500 1000 1>相同的数字连写.所表示的数等于这些数字相加得到的数.如:Ⅲ=3: 2>小的数 ...

  6. 将阿拉伯数字转换为罗马数字

    将阿拉伯数字转换为罗马数字 将大于0小于1000的阿拉伯数字转换为罗马数字.阿拉伯数字与罗马数字的对应关系如下: *问题分析与算法设计 题目中给出了阿拉伯数字与罗马数字的对应关系,题中的数字转换实际上 ...

  7. java利用String将阿拉伯数字变为罗马数字

    import java.util.Scanner;public class StringDemo9 {public static void main(String[] args) {//键入一个字符串 ...

  8. 关于VGA、DVI、HDMI的区别大盘点

    这几天有朋友一直在讨论VGA与HDMI接口的区别,这个之前我们就HDMI与VGA的传输距离进行了初步的了解,随着技术的发展,VGA与HDMI接口也有新的更新,这期我们了再深入的了解VGA.DVI.HD ...

  9. 罗马数字和阿拉伯数字互转(源码)

    罗马数字和阿拉伯数字互转(源码) 将下面源码全部复制下来直接粘贴到html页面试一下,代码还有许多需要改进的地方,请各位大神多多指点,谢谢! <!DOCTYPE html> <htm ...

最新文章

  1. 1. Spring boot 之热部署
  2. 【转载】查看MSSQL数据库每个表占用的空间大小的方法
  3. mysql id生成器自定义_MybatisPlus使用自定义Id生成器数据自动填充
  4. java sleep和wait区别
  5. MySQL分组查询语句
  6. 使用批处理文件来操作注册表
  7. 线性代数矩阵思维导图_斌叔2021考研数学公式:几种特殊形式的矩阵
  8. 在面向服务的设计时有四个原则:
  9. Java基础---Java---基础加强---内省的简单运用、注解的定义与反射调用、 自定义注解及其应用、泛型及泛型的高级应用、泛型集合的综合
  10. linux innode节点读取,混沌工程之注入磁盘innode耗尽
  11. 不要犹豫 了解这些即可玩转阿里云ODPS
  12. 杭电 1142 十字链表存储
  13. 华表Cell应用 - 使用XML自动读入数据 | #报表 #华表Cell
  14. 数据分析-Excel函数练习
  15. 在Ubuntu上安装D-link DWA-131驱动
  16. 小米开发版安装magisk_小米9SE不刷recovery直接安装Magisk面具的详细教程
  17. 七个 ios 上的 android 模拟器
  18. [转]关于uboot的main_loop
  19. git提交,安装配置 commitizen cz-conventional-emoji $git cz代替$git commit
  20. linux 添加开机启动项的三种方法。

热门文章

  1. 飞机绕地飞行一周问题
  2. 已解决:Incorrect string value: '\xF0\x9F\x98\x83' for column 'nick_name' at row 1;
  3. Leetcode 226: Invert Binary Tree
  4. matlab频率和幅值图,请教!傅里叶变换频率和幅值对不上!
  5. 国内主流快递物流查询API接口测评对比
  6. 中小企业如何搭建数据可视化平台
  7. 关于Elastic、关于Elasticsearch教程
  8. 《深度工作》思维导图
  9. Office - PowerPoint文档异常的修复方法
  10. 计算机应用方面已进入什么为特征的时代,计算机考试题库:计算机基础练习题(7)...