数组

时间:2016-02-23 05:00:56

标签: java arrays reverse

Java分配是向用户提示存储在数组中的十个整数,调用传递数组的方法,该方法将以原始顺序和反向顺序显示值。

公共类Module7 {

public static void main(String[] args) {

// prompt the user
System.out.println("Welcome to **yourNameHere**\'s 3 in 1 Programming Assignment (Arrays) for Module 7\n");

// create Scanner Object
Scanner input = new Scanner(System.in);

// loop until break
while(true){

    // new lines for readability
    System.out.print("\n");

    // Prompt user for choices
    System.out.print("\nEnter 1 Random Array \nEnter 2 Reverse Numbers\nEnter 3 Identical Arrays\nAny other input will exit");
    int choice = input.nextInt();
    // Consume newline left-over
    input.nextLine();

    // first feature
    if(choice == 1){
        System.out.println("You Selected Random Array");

        // call the method of feature 1
        feature1();

    }
    else if(choice == 2){

        // Prompt user
        System.out.println("You Selected Reverse Numbers\n");

        feature2();

    }
    else if(choice == 3){

        // Prompt user
        System.out.println("You Selected Identical Arrays !");
        // call the method of feature 3 providing the message, return value is the Letters message
        feature3();

    }
    else{

        // not 1 , 2 or 3
        System.out.println("User didn't select 1,2 or 3. Exiting Program\n");

        // release object
        input.close();

        // exit while with break statement
        break;
    }
} // end of while

} //结束主要

//在这里创建feature1()方法这里没有问题,这个工作

private static void feature1(){

        int[] randomArray = new int[100];
        for (int i = 0; i< randomArray.length; i++)
            randomArray[i] = (int) (Math.random()*100);



        for (int i=0; i<randomArray.length; i++) {
            double currentMin = randomArray[i];
            int currentMinIndex = i;


            //not needed for just sorting
            for (int j=i+1; j<randomArray.length;j++) {
                if (currentMin > randomArray[j]) {
                    currentMin = randomArray[j];
                    currentMinIndex = j;
                }
            }

            //swap list[i] with list[currentMinIndex] if necessary
            if (currentMinIndex !=i) {
                randomArray[currentMinIndex] = randomArray[i];
                randomArray[i] = (int) currentMin;
            }
        }

        for (int i=0; i<randomArray.length; i++) {
              // print randomArray values
              if (i % 10 == 0 && i > 0) {
                  System.out.println();

            }
              System.out.print(randomArray[i] + " ");



            }

    }

//在这里创建feature2()方法我似乎无法让它看起来像这里的示例。我无法将数字一次输入一个,其间有空格,然后显示它们相反。它仅在连续输入所有10个数字且没有空格时才有效。

private static void feature2(){

        System.out.print("Please enter 10 numbers ");
        java.util.Scanner input = new java.util.Scanner(System.in);
        double[] numbers = new double[10];

        System.out.print("\nEntered: ");
        for (int i = 0; i < numbers.length; i++) {

        int number = input.nextInt();
        System.out.print("Reversed: ");
        reverse(number);
        }
    }
    public static void reverse(int number) {
        while (number !=0) {
            int remainder = number % 10;
            System.out.print(remainder + " ");
            number = number/10;
        }


    }

//在这里创建feature3()。 这是我的主要问题所在。我对阵列很糟糕,甚至不知道从哪里开始

 private static void feature3()

`Java赋值是向用户提示存储在数组中的10个整数,调用传递数组的方法,该方法将以原始顺序和反向顺序显示值。

我已经尝试了所有我知道的方式(从阅读我的课本和观看讲座视频......)但我无法弄清楚如何编写这段代码。我的输出应该如下所示:

Output sample

(编辑)抱歉,我会在回到家用电脑后发布我的电子邮件......顺便说一句,这是作业。我对数组和理解他们很糟糕。是否有一个网站教授&#34;数组用于假人&#34;?

5 个答案:

答案 0 :(得分:1)

  

试试这个..

class Assignment{

private Integer[] reverse(Integer[] passtheArray){

//Use Your own logic Whatever you Want to implement and return Your array.
 return null;
}
public static void main(String[] args){
Integer abc[] = new Integer[] {10, 15, 20, 25, 30};
Assignment obj = new Assignment();
obj.reverse(abc);
}
}

答案 1 :(得分:1)

由于您没有提供任何代码,我将假设您没有在项目上取得很大进展。看一下循环遍历Arrays。

对于一个简单的解决方案,您可以通过将数组设置为

来循环遍历数组
int

但是,我建议你做一些关于如何使用for循环反转数组的研究,因为你似乎还没有很好地掌握它们。

如果您发布一些示例代码,我们可以为您提供更直接的提示。

答案 2 :(得分:1)

这是一种方法

public class swapnumber {

    public static void main(String[] args)

    {

         Scanner s = new Scanner(System.in);
         System.out.print("Enter number of elements you want in array:");
        int n = s.nextInt();
         int a[] = new int[n];
         System.out.println("Enter all the elements:");
         for (int i = 0; i < n; i++) 
         {
             a[i] = s.nextInt();
         }



        swapNumber(a);

    }

    private static void swapNumber(int a[]) {

        System.out.println("Original array" + Arrays.toString(a));
        for(int i = 0; i < a.length / 2; i++)
        {
            int temp = a[i];
            a[i] = a[a.length - i - 1];
            a[a.length - i - 1] = temp;
        }

        System.out.println("Reversed array" + Arrays.toString(a));
    }
}

答案 3 :(得分:1)

假设您已经将所有用户输入值存储在数组中,您可能需要创建两个for循环;一个从数组的开头迭代到结尾,另一个从数组的末尾迭代到开头。

for(int i = 0; i < array.length(); ++i) {
   System.out.print(array[i]); //or put that in a string to output later
}


for (int j = array.length() - 1; j >= 0; ++j) {
   System.out.print(array[j]); //or, again, put it in a string
}

知道Java中的数组从索引0开始并以索引等于给定数组的长度减1结束的关键,这就是倒计时循环开始和结束的原因。

希望能解决部分问题!

答案 4 :(得分:0)

使用此方法,之前曾提到如何反转数组here

ArrayUtils.reverse(int[] array)