例如,给定一个字符串 Battle of the Vowels:Hawaii vs Gronzy
当我们将要删除的字符指定为 aeiou
时,该函数应将字符串转换为 Bttl f th V wls:Hw vs Grzny
在本书 Programming Interviews Exposed 中发现了这个问题。这是用 C 语言解释的,但是我对 Java 很感兴趣。
原文由 SuperMan 发布,翻译遵循 CC BY-SA 4.0 许可协议
例如,给定一个字符串 Battle of the Vowels:Hawaii vs Gronzy
当我们将要删除的字符指定为 aeiou
时,该函数应将字符串转换为 Bttl f th V wls:Hw vs Grzny
在本书 Programming Interviews Exposed 中发现了这个问题。这是用 C 语言解释的,但是我对 Java 很感兴趣。
原文由 SuperMan 发布,翻译遵循 CC BY-SA 4.0 许可协议
public class RemoveChars {
char[] replaceChar = {'a','e','i','o','u'};
public static void main(String[] args) {
String src = "Battle of the Vowels:Hawaii vs Gronzy";
System.out.println(new RemoveChars().removeChar(src));
}
public String removeChar(String src){
char[] srcArr = src.toCharArray();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < srcArr.length; i++) {
char foundChar = isFound(srcArr[i]);
if(foundChar!='\0')
sb.append(foundChar);
}
return sb.toString();
}
public char isFound(char src){
for (int i = 0; i < replaceChar.length; i++) {
if(src==replaceChar[i]){
return '\0';
}
}
return src;
}
}
原文由 SSubra 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
一种简单的方法是使用正则表达式:
一些 Java 类库 API 文档:
String.replaceAll:http: //download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang.String)
模式和正则表达式:http: //download.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html#sum