根据用户输入的值追加到Stringbuilder的方法

时间:2019-10-23 12:41:36

标签: java

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

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

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

1 个答案:

答案 0 :(得分:0)

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

编辑 您还可以将telephoneNumber转换为大写(或小写,如您所愿),然后按照@Stultuske在评论中的建议进行操作