顺便说一下,这是用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);


}

09-10 06:25
查看更多