java 字符串练习(罗马数字的转换)
方法一
思路:利用数字与数组索引匹配关系
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 字符串练习(罗马数字的转换)相关推荐
- java字符串变成字母,java字符串的大小写字母转换
java怎样将大写字母转换成小写字母 具体代码如下,字符串中大.小写互转 1)输入 第一行只有一个整数m(m java 字符串指定位置的字母大小写转换 例如把 String Sa="SDFE ...
- java 字符转化字符串_【转载】java字符串的各种编码转换
来自:http://www.blogjava.net/rabbit/archive/2008/03/27/189009.html import java.io.UnsupportedEncodingE ...
- java字符串日期转换成数字,Java字符串到日期的转换
用Java将" 2010年1月2日"格式的String转换为Date的最佳方法是什么? 最终,我想将月份,日期和年份分解为整数,以便可以使用 Date date = new Dat ...
- 罗马数字转换(Java字符串练习)
罗马数字转换(Java字符串练习) [题目描述] 键盘录入一个字符串 要求1:长度为小于等于9 要求2:只能是数字 将内容变成罗马数字 下面是阿拉伯数字跟罗马数字的对比关系: I-1,II-2,III ...
- 【Android NDK 开发】JNI 方法解析 ( 字符串数组参数传递 | 字符串遍历 | 类型强转 | Java 字符串与 C 字符串转换 | 字符串释放 )
文章目录 I . C/C++ 中的 Java 字符串数组类型 II . 获取字符串数组长度 III . 获取字符串数组元素 IV . 类型强转 ( jobject -> jstring ) V ...
- java 首字母小写_java实现将字符串中首字母转换成大写,其它全部转换成小写的方法示例...
本文实例讲述了java实现将字符串中首字母转换成大写,其它全部转换成小写的方法.分享给大家供大家参考,具体如下: public class TestSubstring { public static ...
- json对象,java对象,json字符串,java字符串转换方式,没写的自己去看源码!
package com.sgai.property;import com.alibaba.druid.support.json.JSONUtils; import com.alibaba.fastjs ...
- java字符串转义反转义,把lt; gt;转换成大于小于字符
文章参考:https://blog.csdn.net/qq_34288630/article/details/83654415 java字符串转义,把<>转换成大于小于字符 java字符串 ...
- 分享万能java字符串编码转换工具类
代码下载地址:http://www.zuidaima.com/share/1795356301560832.htm 原文:分享万能java字符串编码转换工具类 package com.zuidaima ...
- java中M格式_Java中Date日期字符串格式的各种转换
编程语言 Java中Date日期字符串格式的各种转换 字号+ 作者:小虾米 2017-04-21 08:51 以下程序源码都是从网络上整理之后,才发到本网站的,新手请收藏啊! public class ...
最新文章
- c语言字符串数组分配没错,【字符串数组面试题】面试问题:C语言基础小结… - 看准网...
- 使用hyperopt(Bayesian optimization)为xgboost模型挑选最优参数进行模型构建、by Cross Validation
- iPhone开发:抢先拥抱软件开发的未来
- python3 udp 广播 源码
- python图片二值化处理百度图api_Python+百度AI实现图像处理-附源码
- js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
- 看风水用什么罗盘最好_兰花用什么花盆栽植最好?
- 用计算机怎么打出狂浪字谱,狂浪歌曲简谱
- LeetCode 215. 数组中的第K个最大元素(快速排序)
- 野生前端的数据结构基础练习(6)——集合
- zillow房价预测比赛_Zillow Prize: 百万美刀奖金的房价预测比赛
- 高级网络营销师黄杰告诉你:怎样建网站?网站建设只需三步
- “ +”(加号)CSS选择器是什么意思?
- Linux实时查看日志,访问前10IP 和相关命令
- Percona5.6.15线程池压力测试
- Pixhawk-姿态解算源码注释
- V4L2驱动框架详解
- Linux环境下利用perl脚本批量筛选VCF文件指定样本
- 用了五年 VS Code ,我决定换成 JetBrains…
- Emlog程序纯黑色调CYP音乐模板源码