将两个数组不同的元素拼接成一个字符串

1.创建两个长度为10的数组,数组内元素为随机生成的、不重复的 1-100之间的整数。
2.定义一个方法,传入两个数组,方法中将两个数组不同的元素拼接成一个字符串,并且将该字符串以及字符串的长度输出到控制台上;
如果没有则输出"对不起两个数组的所有元素均相同"

package it;

import java.util.Random;

public class Test1 {
    public static void main(String[] args) {
        int[] arr1 =new int[10];
        int[] arr2 =new int[10];

        Random r = new Random();
        //当循环完成后arr1就回打印完,若果存在"0"则说明数组中存在重复数据
        System.out.println("打印arr1");
        //随机生成10个不重复的数,存入数组arr1
        for (int i = 0; i < arr1.length; i++) {
            int c = r.nextInt(100) + 1;
            //定义一个boolean 因为新生成的数与数组中的比较只有两种可能
            //先假设数组中没有这个数
            boolean falg = true;
            for (int j = 0; j < arr1.length; j++) {
                //循环判断数组中是否有这个值,若果有 让falg变成false
                if (c == arr1[j]) {
                    falg = false;
                }
            }
            //如果falg == true 则证明数组中没有这个数
            if (falg == true) {
                //把c 赋值给数组arr1
                arr1[i] = c;
            }

            System.out.print(arr1[i]+" ");
        }
        System.out.println();
        //当循环完成后arr2就回打印完,若果存在"0"则说明数组中存在重复数据
        System.out.println("打印arr2");
        //随机生成10个不重复的数,存入数组arr1
        for (int i = 0; i < arr2.length; i++) {
            int c = r.nextInt(100) + 1;
            //定义一个boolean 因为新生成的数与数组中的比较只有两种可能
            //先假设数组中没有这个数
            boolean falg = true;
            for (int j = 0; j < arr2.length; j++) {
                //循环判断数组中是否有这个值,若果有 让falg变成false
                if (c == arr2[j]) {
                    falg = false;
                }
            }
            //如果falg == true 则证明数组中没有这个数
            if (falg == true) {
                //把c 赋值给数组arr1
                arr2[i] = c;
            }

            System.out.print(arr2[i]+" ");
        }
        System.out.println();
        //调用方法
        String zong = getShu(arr1,arr2);
        if(zong.length() == 0){
            System.out.println("对不起两个数组的所有元素均相同");
        }else {
            System.out.println("字符串的长度:"+zong.length());
            System.out.println("字符串:"+zong);
        }
    }

    private static String getShu(int[] arr1, int[] arr2) {
        //定义两个String类型的数用来计算arr1与arr2组成的字符串
        String s1 = "";
        String s2 = "";
        //定义一个值为-1的用作统计arr1与arr2中重复的数
        int index1 = -1;
        int index2 =- 1;
        for (int i = 0; i < arr1.length; i++) {
            for (int n = 0; n < arr1.length; n++) {
                //得到重复的数所在地索引
                for (int j = 0; j < arr2.length; j++) {
                    if(arr1[i] == arr2[j]){
                        index1 = i;
                    }
                }
                for (int k = 0; k < arr2.length; k++) {
                    if(arr2[i] == arr1[k]){
                        index2 = i;
                    }
                }
            }
            //当数组的值为"0"和重复的数所在地索引时跳过本次循环
            if(arr1[i] == 0 || index1 == i ||index2 == i || arr2[i] ==0){
                //此时仍要在此判断
                if(arr1[i] == 0 || index1 == i ){
                    //如果不满足下面条件,s2仍要记录arr2[i]的值
                    if(index2 == i || arr2[i] ==0){
                        continue;
                    }else {
                        s2 += arr2[i];
                    }
                }
                //此时仍要在此判断
                if(index2 == i || arr2[i] ==0){
                    //如果不满足下面条件,s1仍要记录arr1[i]的值
                    if(arr1[i] == 0 || index1 == i){
                        continue;
                    }else {
                        s1 += arr1[i];
                    }
                }
                continue;
            }
            //字符串拼接
            s1 += arr1[i];
            s2 += arr2[i];
        }
        String zong = s1 + s2;
       return zong;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值