学java第12天,字符串练习,数字转罗马数字,23.2.17

import java.util.Scanner;

//数字转罗马数字

public class StringDemoTest15 {

public static void main(String[] args) {

//1.创建阿拉伯数字字符串

String lmNum = "ⅠⅡⅢⅣⅤⅥⅦⅧⅨ";

//2.输入数字,若不在1-9范围内,则重新输入

System.out.print("请输入数字(1-9):");

String num = "";

num=compareNum(num);

//3.转换成罗马数字

String result = "";

for (int i = 0; i < num.length(); i++) {

//数字为1-9,ascll表上为48-57,所以每个字符-48转换成数字,而且数字1-9应该对应罗马数字上的第0-8索引,所以需要再-1

result = result + lmNum.charAt(num.charAt(i)-49);

}

System.out.println("罗马数字为:"+result);

}

public static String compareNum(String num) {

while (true) {

Scanner sc = new Scanner(System.in);

num = sc.next();

//num中每个数都判断是否为1-9,Ascll码为49-57.

int count =0;

for (int i = 0; i < num.length(); i++) {

//如果索引i指的数范围在1-9,继续循环,计数器+1.否则退出循环

if (num.charAt(i) > 48 && num.charAt(i) <= 57) {

count++;

} else {

System.out.print("输入错误,请重新输入:");

break;

}

}

//如果计数器等于数字长度,则退出循环,否则继续循环

if (count==num.length()){

break;

}

}

//返回输入的字符串数字

return num;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值