基于用户输入的值追加到字符串生成器的方法



我有一个家庭作业问题,希望我拿一个电话号码,电话号码是否有字符来确定那是什么号码。当我运行当前方法时,它会返回数字,但输入该方法的任何字符都会忽略它们。

我已经尝试了当前方法的不同版本。

class Telephone {
String telephoneNumber;
StringBuilder telephone = new StringBuilder();
public String translator(String telephoneNumber){
for(int i=0; i<telephoneNumber.length(); i++){
if(Character.isDigit(telephoneNumber.charAt(i))){
telephone.append(telephoneNumber.charAt(i));
} else if(telephoneNumber.charAt(i) == 'A' || telephoneNumber.charAt(i) == 'B' ||  telephoneNumber.charAt(i) == 'C') {
telephone.append(2);
} else if(telephoneNumber.charAt(i) == 'D' || telephoneNumber.charAt(i) == 'E' ||  telephoneNumber.charAt(i) == 'F'){
telephone.append(3);
} else if(telephoneNumber.charAt(i) == 'G' || telephoneNumber.charAt(i) == 'H' ||  telephoneNumber.charAt(i) == 'I'){
telephone.append(4);
} else if(telephoneNumber.charAt(i) == 'J' || telephoneNumber.charAt(i) == 'K' ||  telephoneNumber.charAt(i) == 'L'){
telephone.append(5);
} else if(telephoneNumber.charAt(i) == 'M' || telephoneNumber.charAt(i) == 'N' ||  telephoneNumber.charAt(i) == 'O'){
telephone.append(6);
} else if(telephoneNumber.charAt(i) == 'P' || telephoneNumber.charAt(i) == 'Q' ||  telephoneNumber.charAt(i) == 'R'){
telephone.append(7);
} else if(telephoneNumber.charAt(i) == 'T' || telephoneNumber.charAt(i) == 'U' ||  telephoneNumber.charAt(i) == 'V'){
telephone.append(8);
} else if(telephoneNumber.charAt(i) == 'W' || telephoneNumber.charAt(i) == 'X' ||  telephoneNumber.charAt(i) == 'Y' ||  telephoneNumber.charAt(i) == 'Z' ){
telephone.append(9);
}
}
return telephone.toString();
}
}

当前结果:电话输入555555food返回555555。我需要它返回555 555 3662

编写一个函数,该函数接受两个chars,使用String.valueOf()将它们转换为字符串,然后使用equalsIgnoreCase()进行比较。然后在所有else-if条件下使用该函数。这应该使它更干净。

编辑您还可以将telephoneNumber转换为大写(或小写,您的愿望),然后按照@Stultuske在评论中的建议继续

最新更新