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();
}