我正在编辑我的问题,因为该问题的书写方式不正确,并且难以理解我的要求,我深表歉意。我读了我应该如何提出一个问题,希望这是可以接受的。
所以我完成了代码,所有想知道的代码都可以正常工作,我希望可以问问 我可以对代码进行任何优化吗?我只想知道将来必须写的代码,并成为一名更好的程序员。
程序要求用户输入5位邮政编码,并使用|将二进制返回到条形码。 1和:0。所以我需要检查5个数字,并且数字的总和必须是10的倍数,称为检查数字
switch(first){
case "0":
first = digit0;
break;
case "1":
first = digit1;
break;
case "2":
first = digit2;
break;
case "3":
first = digit3;
break;
case "4":
first = digit4;
break;
case "5":
first = digit5;
break;
case "6":
first = digit6;
break;
case "7":
first = digit7;
break;
case "8":
first = digit8;
break;
case "9":
first = digit9;
break;
}
我使用了这段代码,并将其复制为5位数字和数字中的支票号码。然后,我对每个数字和校验数字使用方法。
public static void first(String first){
String place1 = first.substring(0,1);
String place2 = first.substring(1,2);
String place3 = first.substring(2,3);
String place4 = first.substring(3,4);
String place5 = first.substring(4,5);
switch(place1){
case "0":
place1 = ":";
break;
case "1":
place1 = "|";
break;
}
switch(place2){
case "0":
place2 = ":";
break;
case "1":
place2 = "|";
break;
}
switch(place3){
case "0":
place3 = ":";
break;
case "1":
place3 = "|";
break;
}
switch(place4){
case "0":
place4 = ":";
break;
case "1":
place4 = "|";
break;
}
switch(place5){
case "0":
place5 = ":";
break;
case "1":
place5 = "|";
break;
}
System.out.print("|" + place1 + place2 + place3 + place4 + place5);
}
然后我为每个数字重复此操作。我只是想知道这是否是解决此类问题的正确方法,或者还有更多有效的方法。 例如if语句之类的东西。我不需要确切的细节,而只是处理它的方式。
我再次道歉,如果这是不正确的方式来询问堆栈中的东西,以及是否想知道原因。感谢您的时间和精力,谢谢。
答案 0 :(得分:2)
在Java中,以0开头的数字文字以八进制(以8为底)而不是十进制(以10为底),因此您的数字为:
int digit1 = 00011; // Decimal: 9 Hex: 9 Octal: 11
int digit2 = 00101; // Decimal: 65 Hex: 41 Octal: 101
int digit3 = 00110; // Decimal: 72 Hex: 48 Octal: 110
int digit4 = 01001; // Decimal: 513 Hex: 201 Octal: 1001
int digit5 = 01010; // Decimal: 520 Hex: 208 Octal: 1010
int digit6 = 01100; // Decimal: 576 Hex: 240 Octal: 1100
int digit7 = 10001; // Decimal: 10001 Hex: 2711 Octal: 23421
int digit8 = 10010; // Decimal: 10010 Hex: 271a Octal: 23432
int digit9 = 10100; // Decimal: 10100 Hex: 2774 Octal: 23564
int digit0 = 11000; // Decimal: 11000 Hex: 2af8 Octal: 25370