Java 我的程序没有计算正确的输出,我';我不知道为什么
我已经盯着这个节目看了好几个小时了,也许第二个视角会有所帮助Java 我的程序没有计算正确的输出,我';我不知道为什么,java,arrays,eclipse,class,jgrasp,Java,Arrays,Eclipse,Class,Jgrasp,我已经盯着这个节目看了好几个小时了,也许第二个视角会有所帮助 import java.util.Arrays; import java.util.Random; public class Examples { private int numbers[]; private String result; public Examples() { numbers = new int[10]; Arrays.fill(numbers, 42);
import java.util.Arrays;
import java.util.Random;
public class Examples
{
private int numbers[];
private String result;
public Examples()
{
numbers = new int[10];
Arrays.fill(numbers, 42);
}
public Examples(int[] array)
{
numbers = Arrays.copyOf(array, array.length);
}
public void setNumbers (int numbers)
{
this.numbers = new int[numbers];
}
public int [] getNumbers()
{
return numbers;
}
public String toString()
{
String result = new String();
int i;
for (i = 0; i < numbers.length; i++)
result = numbers + "\t";
return result;
}
结果应该是
测试默认构造函数和toString方法
toString来自FunNumber的结果:
42 42 42 42 42 42 42
toString来自moreFun的结果:
42 42 42 42 42 42 42
不管我得到什么,
测试默认构造函数和toString方法
toString来自FunNumber的结果:
[I@6e1408
toString来自moreFun的结果:
[I@e53108试试看
result += numbers[i] + "\t";
在ToString()方法中
将代码包含到您的FunkyNumbers
类中,我可能能够提供更好的反馈。问题:您总是为结果指定一个新值,而不是追加。
最好将StringBuilder
用作:
StringBuilder result = new StringBuilder();
for (int i = 0; i < numbers.length; i++)
result.append(numbers + "\t");
return result.toString();
还要确保该方法在FunkyNumbers
类中可用。如果在那里不可访问,则移动/复制那里。java中的数组是一个对象。因此,变量FunkyNumbers的值不是数组,而是指向数组所在内存中地址的引用。使用toString()时
在屏幕上打印此内存地址,而不是将数组作为字符串打印。应使用StringBuffer
将数组“转换”为字符串
private static String convertArrayToString(int[] a) {
StringBuffer sb = new StringBuffer();
for(int i=0; i<a.length; i++)
sb.append(a[i]);
return sb.toString();
}
private静态字符串convertArrayToString(int[]a){
StringBuffer sb=新的StringBuffer();
对于(int i=0;i您的FunkyNumbers
类在哪里?在您的FunkyNumbers构造函数中发生了什么?这就是正在调用的构造函数…在您向我们显示FunkyNumbers
类的代码后,我们可以帮助您…这不会影响输出,因为OP正在打印一些FunkyNumbers
类的实例。@RohitJainnkyNumber扩展了一个例子,@SamIam这是一个很大的可能b.:这当然有帮助,但我还是有点不对劲get@user1804737我打赌你试图在你的评论中创建一个新行,不是吗?通常最好编辑这个问题。
String result = new String();
for (int i = 0; i < numbers.length; i++)
result = result + numbers + "\t";//append in result
return result;
private static String convertArrayToString(int[] a) {
StringBuffer sb = new StringBuffer();
for(int i=0; i<a.length; i++)
sb.append(a[i]);
return sb.toString();
}