顺便说一下,这是用java完成的。
所以我试图用字符创建某种模式生成器。我目前拥有的代码将创建一个数组,从输入的第一个数字到最后一个数字(从第一个数组中提取字符)开始,它将无限打印。错误是,如果我从头开始,并告诉它要复制更多的内容; (例如,从12个字符开始,再复制15个字符,但原始数组中只有14个字符。)如何获取原始数组结束后继续填充数组的信息,例如从头开始并继续前进遍历数组直到填满。\
import java.util.*;
public class patternGenerator {
private static Scanner input;
public static void main(String[] args) {
char[] anArray = {'!','@','#','$','%','^','&','*','+','=','~','<','>','?'};
int symbolsPerLine = 0, printed, dontStop = 1, difSymbols;
input = new Scanner(System.in);
System.out.println("Enter the amount of symbols to use: ");
difSymbols = input.nextInt();
while (difSymbols > anArray.length) {
difSymbols = (anArray.length-1);
}
System.out.println("Dif symbols are: "+ difSymbols);
System.out.println("Enter amount of symbols per row: ");
symbolsPerLine = input.nextInt();
System.out.println("Amount of symbols per line are: "+ symbolsPerLine);
char [] patternArray = new char[symbolsPerLine];
System.arraycopy(anArray, difSymbols, patternArray, 0, symbolsPerLine);
System.out.print(patternArray);
while(dontStop == 1) {
System.out.print("\n");
printed = 0;
for (int a = 0; a< patternArray.length; a++) {
System.out.print(patternArray[a]);
}
printed++;
}
}
}
最佳答案
您可以尝试在源数组上添加索引,并在填充模式数组时对其进行循环:
import java.util.*;
public class patternGenerator {
private static Scanner input;
public static void main(String[] args) {
char[] anArray = {'!','@','#','$','%','^','&','*','+','=','~','<','>','?'};
int symbolsPerLine = 0, printed, dontStop = 1, difSymbols;
input = new Scanner(System.in);
System.out.println("Enter the amount of symbols to use: ");
difSymbols = input.nextInt();
while (difSymbols > anArray.length) {
difSymbols = (anArray.length-1);
}
System.out.println("Dif symbols are: "+ difSymbols);
System.out.println("Enter amount of symbols per row: ");
symbolsPerLine = input.nextInt();
System.out.println("Amount of symbols per line are: "+ symbolsPerLine);
char [] patternArray = new char[symbolsPerLine];
int srcIndex =0;
for(j=0; j < symbolsPerLine; j++) {
patternArray[j] = anArray[srcIndex];
srcIndex++;
if(srcIndex> (anArray.length-1)) srcIndex =0;
}
System.out.print(patternArray);
}