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") 及以下请帮我解决这个问题谢谢
有更简单的方法可以做到这一点,但要回答您的具体问题,您需要执行以下操作。在您的方法结束时:
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)
| 归档时间: |
|
| 查看次数: |
67810 次 |
| 最近记录: |