题目来源
题目描述
题目解析
隐藏的知识点是考察了在字符串替换中可能需要用到的正则表达式,由于正则表达中 “.” 是一个特殊字符,所以在替换IP地址中的 “.” 时需要转义。除了 “.”,正则表达式中的特殊字符还有 “.$|()[{^?*+” 等等
class Solution {
public:
string defangIPaddr(string address) {
for (int i = address.length() - 1; i > -1 ; --i) {
if(address[i] == '.'){
address.erase(address.begin() + i);
address.insert(i, "[.]");
}
}
return address;
}
};
class Solution {
public:
string defangIPaddr(string address) {
std::string ans;
for(char ch : address){
if(ch == '.'){
ans += "[.]";
}else{
ans.push_back(ch);
}
}
return ans;
}
};
replace()
public static String defangIPaddr(String address) {
return address.replace(".", "[.]");
}
replaceAll()
- 要用replaceAll(),并且正则表达式直接输入.代表会匹配所有字符,匹配字符的点要用. ,然后在Java中要用"\.“。 return address.replaceAll(”\.", “[.]”);\
public static String defangIPaddr(String address) {
return address.replaceAll("\\.", "[.]");
}