Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试根据用户输入交换数组元素_Java_Arrays - Fatal编程技术网

Java 尝试根据用户输入交换数组元素

Java 尝试根据用户输入交换数组元素,java,arrays,Java,Arrays,因此,我必须交换数组中的两个元素,其中有5个值,但要交换的两个元素必须从键盘中获取。前一个问题是交换到特定的数字,我已经完成了,但我不知道如何从键盘上获取数字以用于交换。其中一些是前一个版本的遗留内容,我知道必须交换的元素 import java.util.Scanner; public class Swap2 { public static void main(String []args) { Scanner keyboardIn = new Scanner (System.in

因此,我必须交换数组中的两个元素,其中有5个值,但要交换的两个元素必须从键盘中获取。前一个问题是交换到特定的数字,我已经完成了,但我不知道如何从键盘上获取数字以用于交换。其中一些是前一个版本的遗留内容,我知道必须交换的元素

import java.util.Scanner;
public class Swap2 {

  public static void main(String []args) {
    Scanner keyboardIn = new Scanner (System.in);

    int[] numbers = new int []{12,9,33,28,5};
    int temp = 0, first, second;

    System.out.println ("Before the swap: ");
    for(int i=0; i < numbers.length; i++) {
      System.out.print(numbers[i] + " ");   
    }
    System.out.println();
    System.out.println ("Enter the first number to swap:");
    first = keyboardIn.nextInt();
    System.out.println ("Enter the second number to swap:");
    second = keyboardIn.nextInt();
    System.out.println ();
    temp = numbers[3];
    numbers [3] = numbers [1];
    numbers [1] = temp;

    System.out.println ("After the swap:");
    for (int i = 0; i < numbers.length; i++) {
      System.out.print (numbers[i] + " ");
    }
  }
}
import java.util.Scanner;
公共类交换2{
公共静态void main(字符串[]args){
扫描仪键盘输入=新扫描仪(System.in);
int[]数字=新的int[]{12,9,33,28,5};
int temp=0,第一,第二;
System.out.println(“交换前:”);
for(int i=0;i
实际上,您并不是在交换用户输入的数字,而是在用
1st
交换
4th
元素

要交换元素,您需要找出它们所属的索引

public static int indexOf(int []arr, int ele)
{
  for(int i = 0; i < arr.length; ++i)
   if(arr[i] == ele)
     return i;
  return -1;
}

你为什么不试试这个呢。请记住,数组索引从0开始

import java.util.Scanner;




    public class Swap2
    {
   public static void main(String []args)
   {
   Scanner keyboardIn = new Scanner (System.in);

    int[] numbers = new int []{12,9,33,28,5};
   int temp, first, second;

      System.out.println ("Before the swap: ");
      for(int i=0; i < numbers.length; i++)
      {
         System.out.print(numbers[i] + " ");

      }
          System.out.println ();
          System.out.println ("Enter the first number to swap:");
          first = keyboardIn.nextInt();
          System.out.println ("Enter the second number to swap:");
          second = keyboardIn.nextInt();
          System.out.println ();
          temp = numbers[first];
          numbers [first] = numbers [second];
          numbers [second] = temp;

         System.out.println ("After the swap:");
         for (int i = 0; i < numbers.length; i++)
         {
            System.out.print (numbers[i] + " ");
         }
   }
}
import java.util.Scanner;
公共类交换2
{
公共静态void main(字符串[]args)
{
扫描仪键盘输入=新扫描仪(System.in);
int[]数字=新的int[]{12,9,33,28,5};
内部温度,第一,第二;
System.out.println(“交换前:”);
for(int i=0;i
您必须定义索引

import java.util.Scanner;

    public class Swap {
        public static void main(String[] args) {
            Scanner keyboardIn = new Scanner(System.in);

            /* enter code here */int[] numbers = new int[] { 12, 9, 33, 28, 5 };
            int temp = 0, first, second;
            int index1 = 0 , index2 = 0;
            int j , k ;

            System.out.println("Before the swap: ");
            for (int i = 0; i < numbers.length; i++) {
                System.out.print(numbers[i] + " ");

            }
            System.out.println();
            System.out.println("Enter the first number to swap:");
            first = keyboardIn.nextInt();
            System.out.println("Enter the second number to swap:");
            second = keyboardIn.nextInt();
            System.out.println();
            for(k = 0 ; k < numbers.length; k++){
                if(numbers[k] == first)
                    index1 = k;
            }
            for(j = 0 ; j < numbers.length; j++){
                if(numbers[j] == second)
                    index2 = j;
            }
            temp = numbers[index1];
            numbers[index1] = numbers[index2];
            numbers[index2] = temp;

            System.out.println("After the swap:");
            for (int i = 0; i < numbers.length; i++) {
                System.out.print(numbers[i] + " ");
            }
        }
    }
import java.util.Scanner;
公共类交换{
公共静态void main(字符串[]args){
扫描仪键盘输入=新扫描仪(System.in);
/*在此处输入代码*/int[]numbers=newint[]{12,9,33,28,5};
int temp=0,第一,第二;
int index1=0,index2=0;
int j,k;
System.out.println(“交换前:”);
for(int i=0;i
是的,在我试图找出如何使用户输入元素成为被交换的元素时,上一个问题是将第1个元素与第4个元素交换,这一点是遗留下来的。@Ant695所以这就是您的操作方法:PThanks这真的很有帮助。
import java.util.Scanner;

    public class Swap {
        public static void main(String[] args) {
            Scanner keyboardIn = new Scanner(System.in);

            /* enter code here */int[] numbers = new int[] { 12, 9, 33, 28, 5 };
            int temp = 0, first, second;
            int index1 = 0 , index2 = 0;
            int j , k ;

            System.out.println("Before the swap: ");
            for (int i = 0; i < numbers.length; i++) {
                System.out.print(numbers[i] + " ");

            }
            System.out.println();
            System.out.println("Enter the first number to swap:");
            first = keyboardIn.nextInt();
            System.out.println("Enter the second number to swap:");
            second = keyboardIn.nextInt();
            System.out.println();
            for(k = 0 ; k < numbers.length; k++){
                if(numbers[k] == first)
                    index1 = k;
            }
            for(j = 0 ; j < numbers.length; j++){
                if(numbers[j] == second)
                    index2 = j;
            }
            temp = numbers[index1];
            numbers[index1] = numbers[index2];
            numbers[index2] = temp;

            System.out.println("After the swap:");
            for (int i = 0; i < numbers.length; i++) {
                System.out.print(numbers[i] + " ");
            }
        }
    }