【发布时间】:2017-02-15 04:25:10
【问题描述】:
我创建了一个三菱徽标生成器,如下所示。它从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();
}
}
}
}
【问题讨论】:
-
我投票结束这个问题,因为它是代码审查。应该改为codereview.stackexchange.com
-
我投票结束这个问题,因为它是代码审查。应该在 codereview.stackexchange.com 中
标签: java for-loop methods repeat