这两种方法有什么区别?JAVA

这两种方法有什么区别?JAVA,java,methods,roman-numerals,Java,Methods,Roman Numerals,我的教授为我提供了一系列方法来填写罗马数字程序(加法格式,所以4=IIII,9=VIIII,等等) 我很难理解这两种方法之间的区别: ** * This method prints, to the standard output and in purely additive * notation, the Roman numeral corresponding to a natural number. * If the input value is 0, nothing

我的教授为我提供了一系列方法来填写罗马数字程序(加法格式,所以4=IIII,9=VIIII,等等)

我很难理解这两种方法之间的区别:

   **
   * This method prints, to the standard output and in purely additive
   * notation, the Roman numeral corresponding to a natural number.
   * If the input value is 0, nothing is printed. This
   * method must call the method romanDigitChar(). 
   * @param val   ?
   */

    public void printRomanNumeral(int val)
    {

    }

   **
   * This method returns the Roman numeral digit corresponding
   * to an integer value. You must use a nested-if statement.
   * This method cannot perform any arithmetic operations. 
   * @param val  ?
   * @return     ?
   */

    public char romanDigitChar(int val)

    {

    }
romanDigitChar应该一个数字一个数字地读取,并且一次只返回一个数字吗?如果是这样,我不明白PrintRomanNumeric会怎么称呼它

我研究过其他罗马数字程序,但我似乎找不到任何使用其他方法调用的方法,比如我可以比较的这个方法


任何建议都将不胜感激

我假设romanDigitChar只返回一个字符作为精确匹配的数字,例如1、5、10、50、100等。PrintRomanNumeric会对已知值反复调用此函数,将它们转换为字符。我建议使用两个嵌套循环,一个用于在递减值中包含特定字符的数量,另一个用于提取每个值。内部循环调用第二个方法


我假设他/她需要ASCII字符,尽管罗马数字有特殊的Unicode字符。

我假设romanDigitChar只返回一个字符作为精确匹配的数字,例如1、5、10、50、100等。PrintRomanNumeric会对已知值反复调用此函数,将它们转换为字符。我建议使用两个嵌套循环,一个用于在递减值中包含特定字符的数量,另一个用于提取每个值。内部循环调用第二个方法


我假设他/她需要ASCII字符,尽管罗马数字有特殊的Unicode字符。

对于初学者来说,romanDigitchar返回一个字符(与输入的自然数相对应的罗马数字)。PrintRomanNumeric不返回任何内容,但应该打印罗马数字

首先,romanDigitchar返回一个char(与输入的自然数相对应的罗马数字)。PrintRomanNumeric不返回任何内容,但应该打印罗马数字

romanDigitChar是否应该逐位读取一个数字,并且一次只返回一个数字?
是,例如,如果要打印两个罗马数字:IIII、VIIIII。在你的
void printromannumeric(int val)
方法,您需要执行以下操作:

public void printRomanNumeral(int val)
{
         System.out.println(romanDigitChar(4));
         System.out.println(romanDigitChar(9));          
}
但是在您的
char-romadightar(int-val)
方法中,您需要一些算法来将自然数转换为罗马数,例如:

    public char romanDigitChar(int val)
    {

        if(val == 4) {
          //Return a roman digit 4.
        }
        if(val == 9) {
          //Return a roman digit 9.
        }

      }

romanDigitChar是否应该逐位读取一个数字,并且一次只返回一个数字?
是,例如,如果要打印两个罗马数字:IIII、VIIII。在你的
void printromannumeric(int val)
方法,您需要执行以下操作:

public void printRomanNumeral(int val)
{
         System.out.println(romanDigitChar(4));
         System.out.println(romanDigitChar(9));          
}
但是在您的
char-romadightar(int-val)
方法中,您需要一些算法来将自然数转换为罗马数,例如:

    public char romanDigitChar(int val)
    {

        if(val == 4) {
          //Return a roman digit 4.
        }
        if(val == 9) {
          //Return a roman digit 9.
        }

      }


所以对于romanDigitChar,我可以这样做:if(val<5){someString=someString+I}等等?不,因为返回类型不是char(它将是string),或者它将是无意义的,因为someString将是一个全局变量。这个想法是你每次都返回一个字符,而不是你问我的。哦,所以它会一个字符一个字符地返回。对于更大的数字,外部方法必须多次调用它。因此对于romanDigitChar,我可以做如下操作:if(val<5){someString=someString+I}等等?否,因为这样返回类型要么不是char(它将是string),要么没有意义,因为someString将是一个全局变量。这个想法是你每次都返回一个字符,而不是你问我的。哦,所以它会一个字符一个字符地返回。对于较大的数字,外部方法必须多次调用。这个问题似乎更适合问你的教授。是的,但我现在想做一些工作,现在是星期天。这个问题似乎更适合问你的教授。是的,但我现在想做一些工作,今天是星期天,《罗马词典》说,
这种方法不能执行任何算术运算没有一个字符表示值4,也没有一个字符表示值9…@GermannArlington我给了他一个提示。你认为如果我给他一个确切的答案会是一个好主意吗?因为这是一项任务。但暗示是错误的。该方法返回单个字符。要用罗马字母表示4(IV),它需要2个字符。@MinGW您提供的答案是正确的,而且是错误的。考虑到任何数字(零除外)都可以用一个或多个罗马数字来表示,因此逻辑上可以假设romanDigitChar(int-val)只接受具有精确的单一罗马数字表示的数字。也就是说,你可以用其中一个值={1,5,10,50,…}来调用它,但不能用其他值。否则该方法将无法确定需要返回什么。romanDigitChar说
该方法不能执行任何算术运算没有一个字符表示值4,也没有一个字符表示值9…@GermannArlington我给了他一个提示。你认为如果我给他一个确切的答案会是一个好主意吗?因为这是一项任务。但暗示是错误的。该方法返回单个字符。要用罗马字母表示4(IV),它需要2个字符。@MinGW您提供的答案是正确的,而且是错误的。考虑到任何数字(零除外)都可以用一个或多个罗马数字来表示,因此逻辑上可以假设romanDigitChar(int-val)只接受具有精确的单一罗马数字表示的数字。也就是说,你可以用其中一个值={1,5,10,50,…}来调用它,但不能用其他值。否则,该方法将无法确定需要返回什么。