用方法清洁代码



我创建了一个Mitsubishi徽标构建器,如下所示。它从logo.txt文件中获取输入,并使用这些ints/chars来创建logo.txt文件中识别的许多徽标。我只是觉得我的代码非常重复,我想将其清除为将其切成单独的方法而不是一遍又一遍地重复,是否有任何有关如何清理此问题的重新计算?我将感谢所有反馈。甚至只是一个起点。预先感谢您。

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    try {
        input = new Scanner(new FileInputStream("config.txt"));
        //initialize ithe variable's input and output
    } catch (FileNotFoundException e) {
        System.out.println("File not found.");
        System.exit(0);
    }
    int size = Integer.parseInt(inputStream.nextLine());
    int numLogos = Integer.parseInt(inputStream.nextLine());
    char letter1 =  inputStream.next().charAt(0);
    char letter2 =  inputStream.next().charAt(0); 
    for(int bee = numLogos; bee > 0; bee--){ 
        for(int y = 0; y < size; y++) { 
            for(int x = 0; x < y; x++) {
                System.out.print(letter2);
            }
            for(int x = 0; x < size - y; x++) {
                System.out.print(letter2);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter2);
            }
            for(int x = 0; x < size - y; x++) {
                System.out.print(letter2);
            }
            for(int x = size; x > y; x--) {
                System.out.print(letter2);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter1);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter1);
            }
            for(int x = size; x > y; x--) {
                System.out.print(letter2);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter2);
            }
            for(int x = 0; x < size - y; x++) {
                System.out.print(letter2);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter2);
            }
            for(int x = 0; x < size - y; x++) {
                System.out.print(letter2);
            }
            System.out.println();
        }           
        for(int y = 0; y < size; y++) {
            for(int x = 0; x < y; x++) {
                System.out.print(letter2);
            }
            for(int x = 0; x < size - y; x++) {
                System.out.print(letter2);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter2);
            }
            for(int x = 0; x < size - y; x++) {
                System.out.print(letter2);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter2);
            }            
            for(int x = 0; x < size - y; x++) {
                System.out.print(letter1);
            }
            for(int x = 0; x < size - y; x++) {
                System.out.print(letter1);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter2);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter2);
            }
            for(int x = 0; x < size - y; x++) {
                System.out.print(letter2);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter2);
            }
            for(int x = 0; x < size - y; x++) {
                System.out.print(letter2);
            }
            System.out.println();
        }
        for(int y = 0; y < size; y++) {
            for(int x = size; x > y; x--) {
                System.out.print(letter2);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter1);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter1);
            }
            for(int x = 0; x < size - y; x++) {
                System.out.print(letter1);
            }
            for(int x = size; x > y; x--) {
                System.out.print(letter1);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter2);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter2);
            }            
            for(int x = 0; x < size - y; x++) {
                System.out.print(letter1);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter1);
            }
            for(int x = 0; x < size - y; x++) {
                System.out.print(letter1);
            }
            for(int x = 0; x < y; x++) {
                System.out.print(letter1);
            }
            for(int x = size; x > y; x--) {
                System.out.print(letter2);
            }
            System.out.println();
        }
    }
}

}

您在代码中多次使用它:

        for(int x = 0; x < y; x++) {
            System.out.print(letter2);
        }
        for(int x = 0; x < size - y; x++) {
            System.out.print(letter2);
        }
        for(int x = 0; x < y; x++) {
            System.out.print(letter2);
        }
        for(int x = 0; x < size - y; x++) {
            System.out.print(letter2);
        }

可以用

代替
        for(int x = 0; x < 2*size; x++) {
            System.out.print(letter2);
        }

另外,此:

        for(int x = 0; x < size - y; x++) {
            System.out.print(letter1);
        }
        for(int x = 0; x < size - y; x++) {
            System.out.print(letter1);
        }

可以用

取代
        for(int x = 0; x < 2*(size - y); x++) {
            System.out.print(letter1);
        }

最新更新