数字转罗马字符

news2024/11/14 20:29:55

 

import java.util.Scanner;

/**
 * @author gyf
 * @ClassName Test
 * @Date 2024/7/31 17:14
 * @Version V1.0
 * @Description : 方法一
 */
public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个字符串: ");
        // 要求长度小于等于9,且只能是数字
        String str = scanner.next();
        System.out.println(str);
        while (true) {
            if (isValidNumber(str)) {
                System.out.println("输入字符串正确");
                break;
            } else {
                System.out.println("输入的不正确,请重新输入:");
                str = scanner.next();
            }
        }
        // 初始化一个sb 做字符串的拼接
        StringBuilder sb = new StringBuilder("");
        System.out.println("你输入的字符串是:" + str);
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            // 将字符转化为整数 '0'-48 就表示数字0
            int number = c - 48;
            String tempstr = luoma(number);
            if (i == str.length() - 1) {
                sb.append(tempstr);
            } else {
                sb.append(tempstr);
                sb.append(" ");
            }
        }
        System.out.println("转化后的字符串为:");
        System.out.println(sb);
    }


    // 输入字符串校验的函数
    public static boolean isValidNumber(String str) {
        // 判断长度是否小于等于9
        if (str.length() > 9) {
            return false;
        }
        // 判断是否全为数字
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c < '0' || c > '9') {
                return false;
            }
        }
        return true;
    }

    // 获取对应的罗马字符串内容
    public static String luoma(int number) {
        // 作为替换的内容
        String[] luoma = {" ", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
        return luoma[number];
    }

}

 

import java.util.Scanner;

/**
 * @author gyf
 * @ClassName Test
 * @Date 2024/7/31 17:14
 * @Version V1.0
 * @Description : 方法一
 */
public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个字符串: ");
        // 要求长度小于等于9,且只能是数字
        String str = scanner.next();
        System.out.println(str);
        while (true) {
            if (isValidNumber(str)) {
                System.out.println("输入字符串正确");
                break;
            } else {
                System.out.println("输入的不正确,请重新输入:");
                str = scanner.next();
            }
        }
        // 初始化一个sb 做字符串的拼接
        StringBuilder sb = new StringBuilder("");
        System.out.println("你输入的字符串是:" + str);
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            String tempstr = luoma(c);
            if (i == str.length() - 1) {
                sb.append(tempstr);
            } else {
                sb.append(tempstr);
                sb.append(" ");
            }
        }
        System.out.println("转化后的字符串为:");
        System.out.println(sb);
    }


    // 输入字符串校验的函数
    public static boolean isValidNumber(String str) {
        // 判断长度是否小于等于9
        if (str.length() > 9) {
            return false;
        }
        // 判断是否全为数字
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c < '0' || c > '9') {
                return false;
            }
        }
        return true;
    }

    // 获取对应的罗马字符串内容
    public static String luoma(char c) {
        // 字符对应字符串内容 复制给str 并作为一次的结果返回
        String str = switch (c){
           case '0'-> "";
           case '1'-> "I";
           case '2'-> "II";
           case '3'-> "III";
           case '4'-> "IV";
           case '5'-> "V";
           case '6'-> "VI";
           case '7'-> "VII";
           case '8'-> "VIII";
           case '9'-> "IX";
           default -> "";
        };
        return str;
    }

}

 

import java.util.Scanner;

/**
 * @author gyf
 * @ClassName Test
 * @Date 2024/7/31 17:14
 * @Version V1.0
 * @Description : 方法三
 */
public class Test {
    public static void main(String[] args) {
        String[] luoma = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个字符串: ");
        // 要求长度小于等于9,且只能是数字
        String str = scanner.next();
        System.out.println(str);
        while (true) {
            if (isValidNumber(str)) {
                System.out.println("输入字符串正确");
                break;
            } else {
                System.out.println("输入的不正确,请重新输入:");
                str = scanner.next();
            }
        }
        // 初始化一个sb 做字符串的拼接
        StringBuilder sb = new StringBuilder("");
        System.out.println("你输入的字符串是:" + str);
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            String tempstr = luoma(c, luoma);
            if (i == str.length() - 1) {
                sb.append(tempstr);
            } else {
                sb.append(tempstr);
                sb.append(",");
            }
        }
        System.out.println("转化后的字符串为:");
        System.out.println(sb);
    }


    // 输入字符串校验的函数
    public static boolean isValidNumber(String str) {
        // 判断长度是否小于等于9
        if (str.length() > 9) {
            return false;
        }
        // 判断是否全为数字
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c < '0' || c > '9') {
                return false;
            }
        }
        return true;
    }

    // 获取对应的罗马字符串内容
    public static String luoma(char c, String[] arr) {
        String str = "";
        if ((c - 48) == 0) {
            str = arr[0];
        } else if ((c - 48) == 1) {
            str = arr[1];
        } else if ((c - 48) == 2) {
            str = arr[2];
        } else if ((c - 48) == 3) {
            str = arr[3];
        } else if ((c - 48) == 4) {
            str = arr[4];
        } else if ((c - 48) == 5) {
            str = arr[5];
        } else if ((c - 48) == 6) {
            str = arr[6];
        } else if ((c - 48) == 7) {
            str = arr[7];
        } else if ((c - 48) == 8) {
            str = arr[8];
        } else if ((c - 48) == 9) {
            str = arr[9];
        } else {
            str = "";
        }
        return str;
    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1976618.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

php类与对象

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文主要整理php类与对象相关的知识点 适合有编程基础的人观看 因为我这个也是整理第n语言&#xff0c;这些老套的概念就不再多啰嗦了。 直接整理相应的语法 感觉把php当第一语言学的人不太多了 快速理解类与对…

MyBatis的example.createCriteria()方法学习记录

目录 一、mapper的crud方法:1. insert方法insert(User user)insertSelective(User user) 2. select方法selectByPrimaryKey(id)selectByExample(example)selectCountByExample(example) 3. update方法updateByPrimaryKey(User user)updateByPrimaryKeySelective(User user)upda…

从零开始的MicroPython(六)ADC

上一篇&#xff1a;PWM 文章目录 ADC是什么ESP32的ADC代码 ADC是什么 ADC的英文全称是Analog / Digital Converter&#xff0c;是将模拟信号转换为数字信号的转换器&#xff0c;ADC是单片机读取传感器信号的常见方式。 我们日常生活中的信号&#xff0c;例如光照强度&#xf…

机器学习练手(三):基于决策树的iris 多分类和波士顿房价预测

总结&#xff1a;本文为和鲸python 可视化探索训练营资料整理而来&#xff0c;加入了自己的理解&#xff08;by GPT4o&#xff09; 原活动链接 原作者&#xff1a;vgbhfive&#xff0c;多年风控引擎研发及金融模型开发经验&#xff0c;现任某公司风控研发工程师&#xff0c;对…

python通过pyautogui自动给微信聊天窗口发消息

使用py脚本自动给聊天窗口发消息 1.突然的自我2.编写脚本玩一把i.先获取窗口位置ii.模拟聊天iii.疗效不错呢 1.突然的自我 突然想到pyautogui可以做那么事情&#xff0c; 那么是不是可以模拟聊天呢&#xff0c;如果结合现在的大模型chatGPT一边问然后得到结果一边自动和别人聊…

一文读懂新版Nacos的使用方式

文章目录 什么是 NacosNacos 架构Nacos 的本地启动 构建提供者 provider-nacos-8081搭建环境编写配置文件 application.yaml构建数据库编写业务实体类控制器类逻辑层与数据层接口 模块结构 构建消费者 consumer-nacos-8080搭建环境编写 yaml 文件配置编写业务编写配置类编写 Co…

Linux系统之NFS服务配置

准备工作 克隆两台linux&#xff0c;并更改其Mac地址&#xff0c;作为NFS客户端&#xff1b;将服务器更名为学号nfsserver&#xff0c;配置IP地址为192.168.学号.1 将客户端Client1更名为学号client1&#xff0c;配置IP地址为192.168.学号.2 将客户端Client2更名为学号clien…

达梦数据库一体机在宜昌市财政局上线了!

财政作为国家治理的基础和重要支柱&#xff0c;其数字化转型已成为构建现代财政制度的必由之路&#xff0c;引领着财政管理体系向更高效、更智能的方向迈进。 达梦数据全面助力财政信息化转型与智能化发展&#xff0c;采用 DAMEGN PAI I 系列数据库一体机&#xff0c;为宜昌市财…

python实现图像分割算法3

python实现区域增长算法 算法原理基本步骤数学模型Python实现详细解释优缺点应用领域区域增长算法是一种经典的图像分割技术,它的目标是将图像划分为多个互不重叠的区域。该算法通过迭代地合并与种子区域相似的邻域像素来实现分割。区域增长算法通常用于需要精确分割的场景,如…

css实现文字根据条件渐变

body 选择器 body { padding: 50vh 0; text-align: center; font-size: 6em; } padding: 50vh 0; 设置了body的上下内边距为视口高度的50%&#xff0c;左右内边距为0。text-align: center; 使得body内的文本内容居中显示。font-size: 6em; 设置了字体大小为当前字体尺寸的6倍…

Solana 自建节点搭建教程:手把手教你成为区块链网络的重要一员

区块链技术正在迅速改变世界&#xff0c;而Solana作为新一代高性能公链&#xff0c;以其出色的性能和低廉的交易费用吸引了众多开发者和用户。如果你想成为Solana生态系统的一部分&#xff0c;搭建自己的Solana节点是一个绝佳的选择。本教程将详细介绍如何一步步搭建Solana自建…

MyBatis 如何通过拦截器修改 SQL

目录 1. 实现Interceptor接口2. 注册配置文件 假如我们想实现多租户&#xff0c;或者在某些 SQL 后面自动拼接查询条件。在开发过程中大部分场景可能都是一个查询写一个 SQL 去处理&#xff0c;我们如果想修改最终 SQL 可以通过修改各个 mapper.xml 中的 SQL 来处理。 但实际过…

【C语言】结构体内存布局解析——字节对齐

&#x1f984;个人主页:小米里的大麦-CSDN博客 &#x1f38f;所属专栏:https://blog.csdn.net/huangcancan666/category_12718530.html &#x1f381;代码托管:黄灿灿 (huang-cancan-xbc) - Gitee.com ⚙️操作环境:Visual Studio 2022 目录 一、引言 二、什么是字节对齐&…

开源个性化自托管服务仪表板:Dashy

**Dashy&#xff1a;**一站式管理&#xff0c;个性化展现- 精选真开源&#xff0c;释放新价值。 概览 Dashy是一个创新的自托管仪表板解决方案&#xff0c;旨在为用户提供一个集中管理多个在线服务的平台。通过直观的界面设计&#xff0c;Dashy允许用户快速访问他们的自托管应…

【C++】内联函数vs宏 nullptr

目录 宏的优缺点分析概念回顾宏的缺点宏的优点 内联函数&#xff08;inline&#xff09;inline函数的定义和声明总结 宏的优缺点分析 概念回顾 下面是宏的申明方式&#xff1a; #define name( parament-list ) stuff //其中的 parament-list 是一个由逗号隔开的符号表&#x…

一个能够在网上爬取思维导图的python小程序

这个小程序是为需要从网上爬取思维导图的朋友写的,时间久了怕被遗忘在垃圾箱里,所以贴出来,给需要的同学使用。 河西石原创地址:https://haigear.blog.csdn.net/article/details/140878039 二、使用方法及流程介绍 简单的说明一下使用的方法: 1、在网上找到自己需要的思…

GBase8c psycopg2安装(centos6)

GBase8c psycopg2安装(centos6) 安装步骤&#xff1a; [rootcentos6 ~]# cd /opt/python/ [rootcentos6 python]# ls psycopg2-2.7.7.tar.gz [rootcentos6 python]# tar -zxf psycopg2-2.7.7.tar.gz [rootcentos6 python]# cd psycopg2-2.7.7 # 安装命令 [rootcentos6 psycop…

【C++:jsoncpp库的配置CMAKE的安装】

CMAKE的安装&#xff1a; 安装路径&#xff1a;Download CMake安装就是无脑Next跳出以下窗口以上步骤完了之后&#xff0c;页面如此&#xff0c;然后点击generate jsoncpp库的配置&#xff1a; 打开生成的源文件所在路径&#xff0c;找到名为jsoncpp.sln的文件&#xff0c;以vs…

大数据信用报告怎么查?有哪些注意事项?

大数据信用对于有资金周转的人来说是比较重要的&#xff0c;主要由于大数据信用无形的被不少机构用于贷前风控&#xff0c;无论是机构要求的还是自查&#xff0c;提前了解大数据信用情况是常规操作&#xff0c;那大数据信用报告如何查询?有哪些需要注意的呢?本文详细为大家讲…

【Kubernetes】k8s集群的资源发布方式

目录 一.常见的发布方式 二.如何实现 1.滚动升级 2.蓝绿升级 3.实现金丝雀发布&#xff08;灰度发布&#xff09; 一.常见的发布方式 蓝绿发布&#xff1a;两套环境交替升级&#xff0c;旧版本保留一定时间便于回滚。优点 用户无感知&#xff0c;部署和回滚速度较快缺点 …