java 帮忙改下程序

来源:百度知道 编辑:UC知道 时间:2024/05/29 15:06:07
程序说明:将输入的罗马字母传换成十进制的数字,然后输出!M代表1000,D代表500,C代表100,L代表50,X代表10,V代表5,I代表1。 例如输入字母XVII=X + V + I + I = 10 + 5 + 1 + 1 = 17。
现在想把程序改一下,想把程序改成3个文件,TestRoman.java用于运行测试程序的主程序,Roman class写在Roman.java中,用于写关于程序的主要算法,
RomanException class写在RomanException.java这个用于建立一个关于程序的own exception。 所以现在想把这个程序改成3个文件。

import java.util.*;

class Trans {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
System.out.print("Enter a Roman numeral?");
String s = scan.nextLine();
int count = 0;
for (int i = 0; i < s.length(); i++) {
switch (s.toLowerCase().charAt(i)) {
case 'm':
count += 1000;
break;
case 'd':
count += 500;
break;
case 'c':
if (i != (s.length() - 1)
&& s.toLowerCase().charAt(i + 1) == 'd') {
count += 400;
i++;
break;
}
if

完美了。

import java.util.Scanner;

public class Roman{
public static String getNum(String s){
int count = 0;
for (int i = 0; i < s.length(); i++) {
switch (s.toLowerCase().charAt(i)) {
case 'm':
count += 1000;
break;
case 'd':
count += 500;
break;
case 'c':
if (i != (s.length() - 1)
&& s.toLowerCase().charAt(i + 1) == 'd') {
count += 400;
i++;
break;
}
if (i != (s.length() - 1)
&& s.toLowerCase().charAt(i + 1) == 'm') {
count += 900;
i++;
break;
}
count += 100;
break;
case 'l':
count += 50;
break;
case 'x':
if (i != (s.length() - 1)
&& s.toLowerCase().charAt(i + 1) == 'c') {
count += 90;
i++;
brea