java如何通过减少“if”语句的数量来改进这个简单的代码?
我是Java新手,正在为类赋值编写一个简单的代码。这是:
public class Digit {
int value;
int end;
public Digit(int numSystem, int value) {
this.end = numSystem;
this.value = value;
}
public int getValue(){
return value;
}
public boolean increment(){
while (value < end){
value +=1;
}
if(value == end){
value = 0;
return true;
}
else{
return false;
}
}
public String toString(){
if (value < 9){
return(String.valueOf(value));
}
if(value == 10){
return("A");
}
if(value ==11){
return("B");
}
if(value == 12){
return("C");
}
if(value == 13){
return("D");
}
if(value == 14){
return("E");
}
if(value == 15){
return("F");
}
if(value == 16){
return("G");
}
if(value == 17){
return("H");
}
if(value == 18){
return("I");
}
if(value == 19){
return("J");
}
if(value == 20){
return("K");
}
if(value == 21){
return("L");
}
if(value == 22){
return("M");
}
if(value == 23){
return("N");
}
if(value == 24){
return("O");
}
if(value == 25){
return("P");
}
if(value == 26){
return("Q");
}
if(value == 27){
return("R");
}
if(value == 28){
return("S");
}
if(value == 29){
return("T");
}
if(value == 30){
return("U");
}
if(value == 31){
return("V");
}
if(value == 32){
return("W");
}
if(value == 33){
return("X");
}
if(value ==34){
return("Y");
}
else{
return("Z");
}
}
}
现在,我发现“toString()”方法看起来很可怕。我在想办法做同样的事情,但要让它更有效率。所以,我想我可以制作一个ArrayList来保存“value”的值,然后循环遍历它并给它分配一个字母。也许这是个好主意
如果是,我会怎么做?因为我每次尝试都会出错
谢谢大家抽出时间
# 1 楼答案
增量可以减少到:
# 2 楼答案
您可以在开始时生成一个数组,在ToString中,您只需在数组中查找即可
不用说,您必须有一个包含值的数组
# 3 楼答案
您可以使用HashMap,然后存储int对及其对应的字符。然后可以使用
myMap.get(30)
检索charscter,例如,这是无论如何都要涉及的字符值的大if语句# 4 楼答案
你可以研究^{} 语句
这段代码也起到了作用
# 5 楼答案
你可以用以下方法来简化它:
请注意,在代码中
toString
返回Z
ifvalue == 9
,这可能是一个错误# 6 楼答案
你可以把int转换成charA’是65,所以输入值+55将是ASCII字符