我试图创建一个数字数组,从一个大数字开始,这是一个字符串,然后拆分以创建一个数组。
此数组的数字为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