创建一个数组,检查另一个数组

时间:2016-01-30 04:50:01

标签: java arrays string sorting

我试图创建一个数字数组,从一个大数字开始,这是一个字符串,然后拆分以创建一个数组。

此数组的数字为1到6。

我想创建一个包含29个项目的新数组,检查最后3个项目。例如,如果要添加的当前项目是数字4,它将检查项目3,2和1.我希望它检查其他3个项目中的任何一项是否与当前项目相同,如果相同,它将跳到下一个数字。

这个想法,不是在"范围内重复数字"共4项。

我还想做另一件事,就是如果当前项目是1号,它会检查最后6个项目,而不仅仅是最后3个项目。只有当项目是数字1时我才会查看#39 ;找到了办法。

我希望有人可以帮助我。

这是当前的代码:

import java.io.*;
import java.util.*;

public class Randomizer {

    public static String numbers = "1632544362511653244213652164535316243164251654235231465312645164233462153465124361522316545326412354165412633214654531626513246124351423565431623162453625412564325134634562136145256142342365161423542563151426325146335241613645225431656324164351215263453642123416561345264215321536436451243156263542125631415624314536235124662145152436352164436512645312264315432651216345624315421563516423465213614352621543342516352614";

    public static void main(String[] args) {
        show("\n");

        String[] nums = numbers.split("(?!^)"), finalNums = new String[29];

        for (int i = 0; i < finalNums.length; i++) {

            finalNums[i] = newnumber(nums, i);

        }

        for (String num : finalNums) {
            show(num + "-");
        }

    }

    public static String newnumber(String[] array, int start) {
        String num = "x";
        String act = array[start];
        for (int i = start; i < array.length; i++) {
            int a = start - 1, b = start - 2, c = start - 3, d = start - 4;
            if (a >= 0 && b >= 0 && c >= 0 && d >= 0) {
                String na = array[a], nb = array[b], nc = array[c], nd = array[d];
                if (act != na && act != nb && act != nc && act != nd) {
                    num = act;
                } else {
                }
            } else {
                num = act;
            }
        }
        return num;

    }

    public static void show(String s) {
        System.out.print(s);
    }

    public static void show(int s) {
        System.out.print(s);
    }

    public static void show(float s) {
        System.out.print(s);
    }

    public static void show(double s) {
        System.out.print(s);
    }

}

输出结果为:

1-6-3-2-5-4-4-3-6-2-5-1-1-6-5-3-2-4-4-2-1-3-6-5-2-1-6-4-5

我期望得到的是:

1-6-3-2-5-4-6-1-2-5-3-4-6-5-1-2-5-4-6-3-2-1-2-4-5-6-3-2-1

0 个答案:

没有答案