用java处理一维数组

用java处理一维数组,java,arrays,methods,initialization,swap,Java,Arrays,Methods,Initialization,Swap,我正在尝试使用对话框中的用户输入创建一个数组。它应该询问用户想要输入多少数字,然后让用户输入数字。然后,代码应该以相反的顺序输出数字。下面是我目前掌握的代码。。它不起作用。我尝试用用户输入初始化数组时出错。我对java相当陌生,所以欢迎提供任何建议。提前谢谢 public static void main(String[] args) { String input; int space; double [] numbers; double count;

我正在尝试使用对话框中的用户输入创建一个数组。它应该询问用户想要输入多少数字,然后让用户输入数字。然后,代码应该以相反的顺序输出数字。下面是我目前掌握的代码。。它不起作用。我尝试用用户输入初始化数组时出错。我对java相当陌生,所以欢迎提供任何建议。提前谢谢

 public static void main(String[] args)
{
    String input;
    int space;
    double [] numbers;
    double count;
    String numberInput;
    double number;

    input = JOptionPane.showInputDialog
            (null, "How many numbers would you like to enter?");
    space = Integer.parseInt(input);

    numbers = new double[space];

    count = 0;
    while (count < space)
    {
        numberInput = JOptionPane.showInputDialog
                (null, "Enter a number to be sorted: ");
        number = Double.parseDouble(numberInput);

    for (int i = 0; i < numbers.length; i++)
    numbers[i] = number;
        count++;
    }

   double[] numbers2 = swapArray(numbers);
    JOptionPane.showMessageDialog(null, numbers2);
}
public static double[] swapArray(double[] array)
{
    double[] result = new double[array.length];

    for (int i = 0, j = result.length - 1;
            i < array.length; i++, j--)
    {
        result[j] = array[i];
    }
    return result;
}
publicstaticvoidmain(字符串[]args)
{
字符串输入;
int空间;
双[]数字;
重复计数;
字符串编号输入;
双数;
input=JOptionPane.showInputDialog
(null,“您要输入多少个数字?”);
空格=整数.parseInt(输入);
数字=新的双精度[空格];
计数=0;
while(计数<空格)
{
numberInput=JOptionPane.showInputDialog
(null,“输入要排序的数字:”);
number=Double.parseDouble(numberInput);
for(int i=0;i

}这是我对你的任务的看法。它应该给你一些关于如何处理问题的想法,而不给你一个复制粘贴解决方案,也不给你最好的结构/逻辑(我自己的能力),但仍然给你一些提示,告诉你他们的方向:

软件包so_q33405148;
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStreamReader;
导入java.util.array;
导入java.util.logging.Level;
导入java.util.logging.Logger;
公共班机{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
试一试{
//提示:您可以在此处使用“扫描器”而不是“阅读器”,以避免将字符串解析为int(扫描器可以为您完成)
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
System.out.println(“您想输入多少数字?”);
int count=Integer.parseInt(br.readLine());
整数输入[]=新整数[计数];
for(int i=0;i
我认为括号必须放在变量名旁边。在将数字放入数组时,您是否尝试过使用索引。这肯定是一个问题,但如果没有错误报告,我不能确定这是一个问题。你能发布它吗?你是否考虑过反向迭代数组(而不是尝试反向数组)?如果你是Java新手,我建议从控制台开始,而不是从对话框或其他更复杂的GUI开始;只是为了获得对控制台驱动程序(最终包括非常重要的命令行参数)的培训和/或理解。CyberGeek.exe,哪个括号和变量?我将尝试以某种方式使用索引进行初始化,看看这是否有帮助。运行此操作时,我没有收到任何错误,只有一些非常奇怪的最终结果消息,例如“[D@4bf558aa“Elliott Frisch,我可以尝试反向迭代数组,我只是想尝试通过该方法传递数组,因为我认为我的教授想让我们知道如何进行。你认为这是问题的一部分吗?
package so_q33405148;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.logging.Level;
import java.util.logging.Logger;

public class main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        try {
            //TIP: You can use 'Scanner' instead of a 'Reader' here, to avoid having to parse strings into ints (scanner can do it for you)
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("How many numbers would you like to enter?");
            int count = Integer.parseInt(br.readLine());
            int input[] = new int[count];
            for (int i = 0; i < count; i++) {
                System.out.print("Enter a number to be sorted: ");
                //TIP: With some clever math, you can invert the array right as it's still filling up here, by manipulating a new int (so 'i' is unchanged, as it's the for-loop's index) using 'i' and 'input.length'...Or, with a little creativity and insight, you may even achieve the same result manipulating 'i' directly somewhere else...
                input[i] = Integer.parseInt(br.readLine());
            }

            System.out.println("Original array:\n" + Arrays.toString(input));

            //TIP: Better methods to reverse arrays and/or collections exist.
            //Take a look at SO question #3962766 (puritan solution without as much memory-footprint) and also Google about 'Arrays.asList()' and 'Collections.reverse()' (learn about collections-sorting)
            int reversedInput[] = new int[input.length];
            for (int i = 0; i < count; i++) {
                reversedInput[i] = input[count - i - 1];
            }

            System.out.println("Reversed array:\n" + Arrays.toString(reversedInput));
        } catch (IOException ex) {
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}