方法一

思路:利用数字与数组索引匹配关系

import java.util.Scanner;public class test {public static void main(String[] args) {String str;//键盘录入Scanner sc = new Scanner(System.in);System.out.println("请输入一个字符串");str = sc.next();while (true) {//校验录入的字符串是否满足要求boolean flag = ccc(str);if (flag){break;}else {System.out.println("不符合规则请重新输入!");continue;}}//将内容变成罗马数字//  查表法:数字和数组产生对应关系StringBuilder sbu = new StringBuilder();for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);int number = c - 48; //48为数字0的编码//调用方法进行转换String s = change(number);//字符串拼接sbu.append(s);}//输出System.out.println(sbu);}//查表法的一个方法public  static String change(int number){String[] arr = {"","I ","II ","III ","IV ","V ","VI ","VII ","VIII ","IX "};return arr[number];}public static boolean ccc(String str){//要求1:长度为小于等于9if (str.length() > 9){return false;}//要求2:只能是数字for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);if (c < '0' || c > '9'){return false;}}//只有当字符串里面所有的字符都判断完毕了 才能认为当前字符串符合规则return true;}
}

执行效果:

方法二

思路:利用switch进行匹配

import java.util.Scanner;public class test {public static void main(String[] args) {String str;//键盘录入Scanner sc = new Scanner(System.in);System.out.println("请输入一个字符串");str = sc.next();while (true) {//校验录入的字符串是否满足要求boolean flag = ccc(str);if (flag){break;}else {System.out.println("不符合规则请重新输入!");continue;}}//将内容变成罗马数字StringBuilder sbu = new StringBuilder();for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);//调用方法进行转换String s = change(c);//字符串拼接sbu.append(s);}//输出System.out.println(sbu);}//对应法的一个方法public  static String change(char number){String str = switch (number){case '0' -> str = "";case '1' -> str = "I ";case '2' -> str = "II ";case '3' -> str = "III ";case '4' -> str = "IV ";case '5' -> str = "V ";case '6' -> str = "VI ";case '7' -> str = "VII ";case '8' -> str = "VIII ";case '9' -> str = "IX ";default -> str = "";}return str;}public static boolean ccc(String str){//要求1:长度为小于等于9if (str.length() > 9){return false;}//要求2:只能是数字for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);if (c < '0' || c > '9'){return false;}}//只有当字符串里面所有的字符都判断完毕了 才能认为当前字符串符合规则return true;}
}

”注意“ 其中 String str = switch (number){ } 为JDK12版本的新特性

java 字符串练习(罗马数字的转换)相关推荐

  1. java字符串变成字母,java字符串的大小写字母转换

    java怎样将大写字母转换成小写字母 具体代码如下,字符串中大.小写互转 1)输入 第一行只有一个整数m(m java 字符串指定位置的字母大小写转换 例如把 String Sa="SDFE ...

  2. java 字符转化字符串_【转载】java字符串的各种编码转换

    来自:http://www.blogjava.net/rabbit/archive/2008/03/27/189009.html import java.io.UnsupportedEncodingE ...

  3. java字符串日期转换成数字,Java字符串到日期的转换

    用Java将" 2010年1月2日"格式的String转换为Date的最佳方法是什么? 最终,我想将月份,日期和年份分解为整数,以便可以使用 Date date = new Dat ...

  4. 罗马数字转换(Java字符串练习)

    罗马数字转换(Java字符串练习) [题目描述] 键盘录入一个字符串 要求1:长度为小于等于9 要求2:只能是数字 将内容变成罗马数字 下面是阿拉伯数字跟罗马数字的对比关系: I-1,II-2,III ...

  5. 【Android NDK 开发】JNI 方法解析 ( 字符串数组参数传递 | 字符串遍历 | 类型强转 | Java 字符串与 C 字符串转换 | 字符串释放 )

    文章目录 I . C/C++ 中的 Java 字符串数组类型 II . 获取字符串数组长度 III . 获取字符串数组元素 IV . 类型强转 ( jobject -> jstring ) V ...

  6. java 首字母小写_java实现将字符串中首字母转换成大写,其它全部转换成小写的方法示例...

    本文实例讲述了java实现将字符串中首字母转换成大写,其它全部转换成小写的方法.分享给大家供大家参考,具体如下: public class TestSubstring { public static ...

  7. json对象,java对象,json字符串,java字符串转换方式,没写的自己去看源码!

    package com.sgai.property;import com.alibaba.druid.support.json.JSONUtils; import com.alibaba.fastjs ...

  8. java字符串转义反转义,把lt; gt;转换成大于小于字符

    文章参考:https://blog.csdn.net/qq_34288630/article/details/83654415 java字符串转义,把<>转换成大于小于字符 java字符串 ...

  9. 分享万能java字符串编码转换工具类

    代码下载地址:http://www.zuidaima.com/share/1795356301560832.htm 原文:分享万能java字符串编码转换工具类 package com.zuidaima ...

  10. java中M格式_Java中Date日期字符串格式的各种转换

    编程语言 Java中Date日期字符串格式的各种转换 字号+ 作者:小虾米 2017-04-21 08:51 以下程序源码都是从网络上整理之后,才发到本网站的,新手请收藏啊! public class ...

最新文章

  1. c语言字符串数组分配没错,【字符串数组面试题】面试问题:C语言基础小结… - 看准网...
  2. 使用hyperopt(Bayesian optimization)为xgboost模型挑选最优参数进行模型构建、by Cross Validation
  3. iPhone开发:抢先拥抱软件开发的未来
  4. python3 udp 广播 源码
  5. python图片二值化处理百度图api_Python+百度AI实现图像处理-附源码
  6. js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
  7. 看风水用什么罗盘最好_兰花用什么花盆栽植最好?
  8. 用计算机怎么打出狂浪字谱,狂浪歌曲简谱
  9. LeetCode 215. 数组中的第K个最大元素(快速排序)
  10. 野生前端的数据结构基础练习(6)——集合
  11. zillow房价预测比赛_Zillow Prize: 百万美刀奖金的房价预测比赛
  12. 高级网络营销师黄杰告诉你:怎样建网站?网站建设只需三步
  13. “ +”(加号)CSS选择器是什么意思?
  14. Linux实时查看日志,访问前10IP 和相关命令
  15. Percona5.6.15线程池压力测试
  16. Pixhawk-姿态解算源码注释
  17. V4L2驱动框架详解
  18. Linux环境下利用perl脚本批量筛选VCF文件指定样本
  19. 用了五年 VS Code ,我决定换成 JetBrains…
  20. Emlog程序纯黑色调CYP音乐模板源码

热门文章

  1. RFID射频识别系统简述
  2. VMware Workstation 安装ssh服务器
  3. 网络安全(二)安全基础
  4. ITIL与DevOps
  5. Greenplum单机版部署
  6. 奔图打印linux驱动下载,奔图P3060DW打印机驱动下载_奔图P3060DW打印机驱动官方下载-太平洋下载中心...
  7. ubuntu系统安装TP-Link无线网卡驱动
  8. 把书本上的字快速弄到电脑上
  9. 最新 CCF A 类人工智能会议论文下载汇总 (含2022)
  10. 28 《暗时间》 -豆瓣评分8.4