首页 > 编程语言 >Java 字符串转换成罗马数字

Java 字符串转换成罗马数字

时间:2024-08-22 17:52:05浏览次数:13  
标签:转换成 Java String System 罗马数字 str 字符串 return

键盘录入一个字符串

  • 要求1:长度为小于等于9
  • 要求2:只能是数字

将内容变成罗马数字

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

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

注意点:

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

import java.util.Scanner;

public class Test1Case1 {
    public static void main(String [] args){
        /*键盘录入一个字符串
        要求1:长度为小于等于9
        要求2:只能是数字
                将内容变成罗马数字
        罗马数字没有0
        如果键盘输入的数字有0,可以变成“"(长度为0的字符串)
         */

        //1.键盘录入一个字符串
        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;
            }
        }

        //将内容变成罗马数字
        //查表法:数字跟数据产生一个对应关系
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            int number = c-'0';//'0'是48
            String s = changeLuoMa(number);//
            sb.append(s);
            //System.out.println(s);//'1','2','3'(字符)
        }
        System.out.println(sb);
    }

    public static String changeLuoMa(int number){
        //定义一个数组,让索引跟罗马数字产生一个对应关系
        String[] arr ={"","Ⅰ","Ⅱ","Ⅲ","Ⅳ","Ⅴ","Ⅵ","Ⅶ","Ⅷ","Ⅸ"};
        return arr[number];
    }
    public static boolean checkStr(String str){
        //要求1:长度为小于等于9
        if(str.length()>9){
            return false;
        }
        //要求2:只能是数字
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);//0~9
            if (c<'0'||c>'9') {
                return false;
            }
        }

        //只有当字符串里面所有字符全都判断完毕了,才能认为当前的字符串符合规则
        return true;
    }
}

标签:转换成,Java,String,System,罗马数字,str,字符串,return
From: https://blog.csdn.net/qq_68874993/article/details/141432623

相关文章

  • Java的循环结构
     一、什么是循环语句在Java中,循环是一种控制结构,允许程序重复执行一段代码块,直到满足特定的条件为止。循环结构在编程中非常重要,因为它可以避免重复编写相同的代码,提高代码的效率和可读性。一、循环条件这是一个判断表达式,用于确定是否继续执行循环。只要循环条件为真,循......
  • 什么是JAVA
    Java发展史机器语言:电子机器能够直接识别的语言,无需经过翻译,计算机内部就有相应的电路来完成它;从使用的角度来看,机器语言是最低级的语言。高级语言:更容易被人们所理解的高级程序语言,符合人类思维模式的程序设计语言,如:C、Java,JavaScript、Python、Go等。汇编语言:面向机器......
  • Java基础--static关键字
    引言        在Java编程中,static关键字是一个非常重要的概念。它可以用于变量、方法、代码块。提供了在内存管理和代码结构上的独特优势,理解并正确使用static关键字是掌握Java编程的重要一步。static关键字是什么?    static关键字是Java中的一个修饰符,用于......
  • jenkins 自动安装 和 手动安装java 或者一些其他环境配置的区别
    由于之前的jenkins存在安全漏洞,升级了jenkins,相应的jenkinsmaster服务器上的javajdk也一起升级为openjdk21.升级后发现:1.新的jenkins的slavenode启动的jar包下载后,在原来的slavenode服务器上面无法正常被执行了。这时我才知道原来升级了jenkins,对应的slavenode启动的jar......
  • Java中什么是反射
    反射文章目录反射反射概述反射是什么反射的作用反射的使用获取Class生成实例对象访问属性调用方法反射的应用反射封装JDBC框架传统写法:封装AddOne方法封装find方法封装updateById方法封装deleteById方法Guava自定义注解反射概述反射是什么反射(Reflection)......
  • Java之日期
    目录日期java.time的API(目前多用time)一、LocalDate1.基本用法2.日期之间的转化3.LocalDateTime计算4.格式化日期二、Instant1.基本应用2.常见方法3.时间计算4.时间转化三、DateTimeFormatter时间格式化1.基本用法2.各类时间格式化四、ZonedDateTime1.基本用法2.Zo......
  • java+vue计算机毕设旅游景点预约系统【源码+开题+论文】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着旅游业的蓬勃发展,人们对旅游体验的需求日益个性化与高效化。传统的旅游预订方式往往存在信息不对称、购票流程繁琐、景点拥堵等问题,影响了游客的......
  • java+vue计算机毕设开放实验室网上预约系统【源码+开题+论文】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高等教育体系的不断发展和教育资源的日益丰富,实验室作为培养学生实践能力和创新精神的重要场所,其使用效率与管理水平成为衡量高校教学质量的重要......
  • java+vue计算机毕设农资电子监管系统的设计与实现【源码+开题+论文】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着农业现代化的不断推进,农资产品的流通与管理成为保障农业生产高效、安全的重要环节。传统农资管理模式存在信息不对称、监管难度大、效率低下等问......
  • java版本12计算2000年1月到2023年6月相差几年
     JDK12版本importjava.time.YearMonth;importjava.time.temporal.ChronoUnit;publicclassYearsBetweenDates{publicstaticvoidmain(String[]args){YearMonthstartYearMonth=YearMonth.of(2000,1);YearMonthendYearMonth=YearMon......