我想将字母 xxx-xxx-xxxx 的字符串更改为 333-333-3333 我试过了但是在 if(phoneNumber.charAt(0)) 中出错

新手上路,请多包涵
public class ABCTelephoneTranslator {

public static String translate(String phoneNumber) {
     // Creating array of string length
    char[] ch = new char[phoneNumber.length()];

    // Copy character by character into array
    for (int i = 0; i < phoneNumber.length(); i++) {
        ch[i] = phoneNumber.charAt(i);
    }

    // Printing content of array
    for (char c : ch) {
        System.out.println(c);
    }
    System.out.println(ch.length);
    if(ch.length > 12) {
        throw new IllegalArgumentException("the format should be XXX-XXX-XXXX");
    }
    if(phoneNumber.charAt(0) == "x") {
        phoneNumber.charAt(0) = "3";
    }
    return phoneNumber;
}

我需要将字母串 xxx-xxx-xxxx 更改为 333-333-3333 我该怎么做 我试过这个但是在它说 if(phoneNumber.charat(0) == “x”) 及以下时出现错误请帮我解决这个问题谢谢

原文由 Tahsin Ahmed 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 256
1 个回答

有更简单的方法可以做到这一点,但要回答您的具体问题,您需要执行以下操作。在你的方法结束时:

 for (int i = 0; i < ch.length; i++) {
   if(ch[i] == 'x' { // single quotes.
        ch[i] = '3';
   }
}
return new String(ch);

另外,要获取字符数组,您可以执行此操作。

 char ch[] = phonenumber.toCharArray();

与其他人告诉你的相反,

 phonenumber.replace("x","3");

不起作用,因为 String 是不可变的。您需要重新分配它。

 phonenumber = phonenumber.replace("x","3");

原文由 WJS 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题