将一个int和string数组合并到第三个数组

时间:2016-06-23 13:51:59

标签: java arrays merge

  

有两个数组,一个是int,一个是字符串(单词);对它们进行排序然后以奇数位置的方式打印它应该是单词和偶数。

这是我的代码:

import java.util.*;
public class JavaApplication4 {


    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int num[]=new int[10];
        String str[]=new String[10];
        String str1[]=new String[20];
        for(int i=0; i<5; i++)//for taking strings
        {
            str[i]=in.next();
        }
        for(int i=0; i<5; i++)//for taking nums
        {
            num[i]=in.nextInt();
        }
        for(int i=0; i<5; i++)
        {
            System.out.println("The String are "+str[i]);
        }
        for(int i=0; i<5; i++)
        {
            System.out.println("The num are "+num[i]);
        }
         for (int i = 0; i < 5; i++) //for sorting nums
        {
            for (int j = i + 1; j < 5; j++) 
            {
                if (num[i]>(num[j])) 
                {
                    int temp = num[i];
                    num[i] = num[j];
                    num[j] = temp;
                }
            }
        }
        for (int i = 0; i < 5; i++)// for sorting strs
        {
            for (int j = i + 1; j < 5; j++) 
            {
                if (str[i].compareTo(str[j])>0) 
                {
                    String temp = str[i];
                    str[i] = str[j];
                    str[j] = temp;
                }
            }
        }
        System.out.println("The sorted strings are:");
        for(int i=0; i<10; i++)//for merging both
        {
            if((i+1)%2==0)
            {
                int k=0;
                str1[i]=String.valueOf(num[k]);
                 System.out.println("The String are "+str1[i]);
                k++;
            }
            else
            {
                int j=0;
                str1[i]=str[j];
                 System.out.println("The String are "+str1[i]);
                j++;
            }


        }
      /*   for(int i=0; i<10; i++)
        {
            System.out.println("The String are "+str1[i]);
        }
        */
    }
}

我得到的输出是什么:

  

排序的字符串是:
  字符串是ab
  字符串是1
  字符串是ab
  字符串是1
  字符串是ab
  字符串是1
  字符串是ab
  字符串是1
  字符串是ab
  字符串是1

它只接受两个数组的第一个元素。

3 个答案:

答案 0 :(得分:2)

您应该在循环之前将{=MEDIAN(IF(D5:Z12=AC5,ABS(D27:Z34-MEDIAN(IF(D5:Z12=AC5,D27:Z34)))))}k初始化为j,而不是在循环内。

0

答案 1 :(得分:0)

您可以使用Arrays类对数组进行排序。

String[] strArray = new String[] {"a","z","q","p"};
Arrays.sort(strArray);

同样,尝试第二阵列。

现在,通过添加两个数组的大小声明另一个数组:

String[] newArray = new String[sum];
int j=0;
for(int i=0;i<newArray.length;i+=2)
{
    newArray[i]=strArray[j];
    newArray[i+1] = otherArray[j++];
}

答案 2 :(得分:0)

其他人指出了根本原因。除此之外,为什么要初始化容量为10(和20)的数组num[] str[] str1[],这是所需容量5(和10)的两倍?

另一个问题是str1[]的名称非常糟糕。