gpt4 book ai didi

Java - 芳香数字 - 输入

转载 作者:行者123 更新时间:2023-11-30 07:18:52 25 4
gpt4 key购买 nike

芳香数的形式为 AR,其中每个 A 都是一个阿拉伯数字,并且每个R是罗马数字。

每一对 AR 都贡献一个如下所述的值,并且通过添加或将这些值一起减去我们得到整个芳香数的值。阿拉伯数字 A 可以是 0、1、2、3、4、5、6、7、8 或 9。罗马数字 R 是七个字母 I、V、X、L、C、D 或 M 之一. 每个罗马数字都有一个基值:


该程序旨在获取同一行上的 AR 值(例如输入 3V),并将其相乘。 3V 将是 3 x 5 = 15。因为 V 是 5。

我的问题是我无法获取用户输入的内容并将整数乘以字符串。这使它变得乏味。我尝试将字符串转换为 int,但程序给了我一个nullformatException

此外,A 将在第一个单元格 [0] 中,R(数字)将在单元格 [1] 中

import java.io.*;
import java.util.*;
import java.text.*;

public class AromaticNumerals
{
public static int decode (String x) // since input is direct the program doesnt require validation
{
if (x.equals ("I"))
return 1;
else if (x.equals ("V"))
return 5;
else if (x.equals ("X"))
return 10;
else if (x.equals ("L"))
return 50;
else if (x.equals ("C"))
return 100;
else if (x.equals ("D"))
return 500;
else
return 1000;
}



public static void main (String str[])
throws IOException
{
BufferedReader stdin = new BufferedReader (new InputStreamReader (System.in));

int Output;

int MAX = 20;
String[] x = new String [MAX]; // by picking an array we can separate the A-R

System.out.println ("Please input an aromatic number. (AR)");

x [0] = (stdin.readLine ());


int y = Integer.parseInt (x [0]);

Output = ( y * decode (x [1]));


System.out.println (Output);

}
}

最佳答案

    int MAX = 20;
String[] x = new String [MAX]; // by picking an array we can separate the A-R

不正确。您的所有输入都将进入数组的第一个元素 x[0]。您将字符串数组与字符数组混淆了。最简单的解决方案是消除 String[] 并使用普通的 String,然后使用 charAt() 提取单个字符substring().

关于Java - 芳香数字 - 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15079757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com