通过调用另一个类中引用另一个Java Eclipse方法的方法打印出排序数组

通过调用另一个类中引用另一个Java Eclipse方法的方法打印出排序数组,java,arrays,eclipse,methods,printing,Java,Arrays,Eclipse,Methods,Printing,我在另一个类中使用方法时遇到问题。我必须调用一个方法,该方法调用另一个方法来使用冒泡排序对字符串数组进行排序 守则: /** * My pride and joy, the bubble sort. * @return */ public void BubbleSort(){ boolean run = true; String temp; while (run) { run = false; for(

我在另一个类中使用方法时遇到问题。我必须调用一个方法,该方法调用另一个方法来使用冒泡排序对字符串数组进行排序

守则:

    /**
 * My pride and joy, the bubble sort.
 * @return 
 */
public void BubbleSort(){

    boolean run = true;
    String temp;

    while (run)
    {
        run = false;

            for(int i = 0; i <stringArray.length - 1; i++)
            {

                if(stringArray[i].compareToIgnoreCase( stringArray[i+1]) > 0)
                {

                    temp = stringArray[i];

                    stringArray[i] = stringArray[i+1];

                    stringArray[i+1] = temp;

                    run = true;
                }// end of if
            }// end of for
    }// end of while

    System.out.println(stringArray);


}// end of BubbleSort




public void PrintSortedString(){
    BubbleSort();
}
输入为:

    Please enter names:
z
a
Your names:
[z, a]
[Ljava.lang.String;@4efe03b3 // this is where it should priont [a,z]
我做错了什么?

而不是

System.out.println(stringArray);
尝试使用

System.out.println(Arrays.toString(stringArray));
第一个是打印有关数组的信息,第二个是打印内容

已更新

如果希望这些方法返回排序操作的结果,则需要定义执行此操作的方法

public String[] BubbleSort(){
    /*...*/
    return stringArray;
}// end of BubbleSort

public String[] PrintSortedString(){
    return BubbleSort();
}
这将允许您使用
System.out.println(Arrays.toString(stringUtility.PrintSortedString())

您还应该花时间通读而不是

System.out.println(stringArray);
尝试使用

System.out.println(Arrays.toString(stringArray));
第一个是打印有关数组的信息,第二个是打印内容

已更新

如果希望这些方法返回排序操作的结果,则需要定义执行此操作的方法

public String[] BubbleSort(){
    /*...*/
    return stringArray;
}// end of BubbleSort

public String[] PrintSortedString(){
    return BubbleSort();
}
这将允许您使用
System.out.println(Arrays.toString(stringUtility.PrintSortedString())

你也应该花时间通读你所看到的

[Ljava.lang.String;@4efe03b3
是由于

System.out.println(stringArray);
它在内部调用
stringArray.toString()
,并打印结果

此行为适用于所有对象。如果需要自定义字符串消息,则需要让类实现一个自定义的
toString()
方法,而不是依赖。由于无法更改
string[]
类,因此需要自己迭代元素

或者,您可以依赖作为JDK一部分的
数组

System.out.println(Arrays.toString(stringArray));
你看到了什么

[Ljava.lang.String;@4efe03b3
是由于

System.out.println(stringArray);
它在内部调用
stringArray.toString()
,并打印结果

此行为适用于所有对象。如果需要自定义字符串消息,则需要让类实现一个自定义的
toString()
方法,而不是依赖。由于无法更改
string[]
类,因此需要自己迭代元素

或者,您可以依赖作为JDK一部分的
数组

System.out.println(Arrays.toString(stringArray));

有意义的是,首先我尝试在驱动程序类中使用Arrays.toString(stringUtility.PrintSortedString()),这会在me@user2817719方法
PrintSortedString
不返回任何内容。它本来不应该返回任何内容。有道理,首先我尝试使用Arrays.toString(stringUtility.PrintSortedString());在驱动程序类中。这将在me@user2817719方法
PrintSortedString
不会返回任何内容。它从来没有被认为会返回任何内容。Java编码风格的小技巧-通常接受以小写字母开始方法名,以大写字母开始类名。例如,
公共类MyClass
public void doSomething()
@Meesh请不要修改发布的代码,除非对其进行格式化,您已经更改了OP发布的方法签名,这可能会使人们在回答OP的问题时更加困惑question@MadProgrammer注意,谢谢。Java编码风格的小技巧-一般接受以小写字母开头的方法名d带有大写字母的类名称。例如,
public class MyClass
public void doSomething()
@Meesh请不要修改发布的代码,除非对其进行格式化,您已经更改了OP发布的方法签名,这可能会使人们在回答OP的问题时更加困惑question@MadProgrammer注意,谢谢。