我有一个作业问题,希望我接一个电话号码,并且该电话号码是否包含字符来确定电话号码是多少。当我运行当前方法时,它返回数字,但是输入的任何字符都将忽略它们。

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

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在注释中的建议继续操作

关于java - 根据用户输入的值追加到Stringbuilder的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58523110/

10-08 23:32