如何将新数字从方法返回到main

时间:2013-11-23 10:06:53

标签: java

我是java的新手 我必须编写一个程序,根据这些条件,通过在现有目录号的左侧添加一个数字,将现有目录(3-5位)编号修改为新目录编号:

  1. 新号码将是最左边数字与最右边数字之间的最大数字。
  2. 如果最左边的数字等于最右边的数字,则新数字将为9.
  3. 输入应为10个数字,然后添加新数字。 问题是,现在,方法“newKatalogNumber”得到旧的目录号,并返回左边的数字,我喜欢的方法根据条件返回新的目录代码(现在条件在主要部分)。例如,如果方法得到1234,她将返回41234,并将在主要结尾处打印。我还没有办法做到这一点。 enybody有线索如何做到这一点? 我会很感激。

    这是我的代码:

    import java.util.Scanner;   // This program gets an old catalog number between 3 to 5 digits and change it to a new catalog number
    // by adding a new digit to the left of the number
    
    public class Number
     {
        public static int newKatalogNumber(int num)  
        {
            while (num>=10) 
            {
                num /= 10;
            }
           return num;
        }
    
         public static void main(String[] args)
        {
             Scanner input = new Scanner(System.in); 
    
          for (int oldNum=0; oldNum<10; oldNum++)   
           {
              System.out.print("Insert old catalog Number: ");//The user insert the old catalog number
              int catalogNum = input.nextInt();
              int mostRight = catalogNum % 10;   
              int mostLeft = newKatalogNumber(catalogNum);
    
              //Adding the new digit according to condition below: 
    
            if (mostRight>mostLeft)
             {
              System.out.println("Old catalog number is:"+catalogNum);
              System.out.println("New catalog number is"+mostRight+catalogNum);
             }
            else if (mostLeft>mostRight)
             {
              System.out.println("Old catalog number is:"+catalogNum);
              System.out.println("New catalog number is"+mostLeft+catalogNum);
             }
            else
             {
              System.out.println("Old catalog number is:"+catalogNum);
              System.out.println("New catalog number is"+9+catalogNum);
             }
          }
        }              
    }  
    

2 个答案:

答案 0 :(得分:0)

您可以制作一个static方法来执行所有计算,并在main()

中返回结果
public static int doComputation(int someNumber){
  // your logic
  return result;
}  

在您的主要内部,您可以执行以下操作:

int whatIGetBack = doComputation(5);  
System.out.println("Result in main() " + whatIGetBack);

答案 1 :(得分:0)

你可以通过乘以10足够的次数将数字改组为

public static int newKatalogNumber(int num)  
{
    int original = num;
    int multiplier = 1;
    while (num>=10) 
    {
        num /= 10;
        multiplier *= 10;
    }


   return (num * mulitplier) + original;
}

另一种方法是转换为字符串并使用字符串连接。