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

Tah*_*med -2 java

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;
}
Run Code Online (Sandbox Code Playgroud)

我需要将字母 xxx-xxx-xxxx 的字符串更改为 333-333-3333 我该怎么做我试过这个但得到一个错误,它说 if(phoneNumber.charat(0) == "x") 及以下请帮我解决这个问题谢谢

WJS*_*WJS 6

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

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

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

char ch[] = phonenumber.toCharArray();
Run Code Online (Sandbox Code Playgroud)

与其他人告诉你的相反,

phonenumber.replace("x","3");
Run Code Online (Sandbox Code Playgroud)

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

phonenumber = phonenumber.replace("x","3");
Run Code Online (Sandbox Code Playgroud)