Java 从main方法调用int数组的display方法

Java 从main方法调用int数组的display方法,java,Java,我有一个一级大整数: public class LargeInteger { private int[] intArray; public LargeInteger(String s) { for (int i = 0; i < s.length(); i++) { intArray[i] = Character.digit(s.charAt(i), 10); } } public void

我有一个一级大整数:

public class LargeInteger {

    private int[] intArray;

    public LargeInteger(String s) { 

        for (int i = 0; i < s.length(); i++) {
            intArray[i] = Character.digit(s.charAt(i), 10);
        }
    }

    public void display() {

         for (int i = 0; i < intArray.length; i++) {     
                System.out.print(intArray[i]);


            }

        }
}

因为我的显示方法是void,所以这不起作用,但我不确定如何使它返回。。如果有的话?我能做什么?

您的
显示方法是直接打印值。相反,您希望构建一个
字符串
,然后返回该字符串



我建议您先返回一个常量字符串。当它工作时,尝试动态创建字符串。

您的显示方法实际上会打印到屏幕上。您只需将代码更改为:

string1 = input.next(); 
LargeInteger firstInt = new LargeInteger(string1);
System.out.println ("First integer:");
firstInt.display();

您需要返回一个字符串:

public String display() {           
  String result="";
  for (int i = 0; i < intArray.length; i++) {     
    // create string representation
  }
  return result;
}
公共字符串显示(){
字符串结果=”;
对于(inti=0;i
显示方法应返回字符串

    public String display() {

        String temp = "";
        for (int i = 0; i < intArray.length; i++) {  

             temp = temp + intArray[i].ToString();
        }

        return temp;
    }
公共字符串显示(){
字符串temp=“”;
对于(inti=0;i
好吧,在您的
display()
方法中,您有:

System.out.print(intArray[i]);
可以打印一个数字

相反,您可以将方法更改为:

public String display() {
  StringBuilder number = new StringBuilder();
  for (int i : intArray) {     
    number.append(i);        
  }
  return number.toString();
}
请注意,我使用了
StringBuilder
而不是字符串连接。这对于非常大的数字产生了更好的性能,因为通过简单的串联,每次迭代将创建两个新的
String
实例,这将很快消耗内存和处理时间


编辑:只需修复代码中的一个输入错误,并简化每个代码的循环使用。

我想到基本上有两件事你可以做:

  • 使用类
    BigInteger
    ,因为它完全满足您的需要
  • 更改
    display
    方法以返回字符串-我建议您使用StringBuilder创建它:

    public String display() {
      final StringBuilder result = new StringBuilder();
      for (int i = 0; i < intArray.length; i++) {     
        result.append(intArray[i]);
      }
      return result.toString();
    }
    
    公共字符串显示(){
    最终StringBuilder结果=新建StringBuilder();
    对于(inti=0;i

  • 我还建议不要调用成员变量
    intArray
    ,因为它的类型信息中已经包含了这个变量。最好将其称为
    value
    contents
    或与其用法更相关的东西。

    由于该方法不显示,而是返回一个字符串,我建议您覆盖LargeInteger类的ToString()方法。这看起来不错,值得了解。我不会用它做家庭作业,但我很感激我会改名的。谢谢你的帮助。此赋值禁止使用BigInteger类。
    public String display() {
      final StringBuilder result = new StringBuilder();
      for (int i = 0; i < intArray.length; i++) {     
        result.append(intArray[i]);
      }
      return result.toString();
    }