从字符串中删除字符是一种更好的方法(时间和空间):
方法1:
String charsToRemove = "abc";
String myString = "abcdef";
myString = myString.replaceAll("["+charsToRemove+"]", "");
方法二:
// Initialized to charsToRemove
HashSet<Character> charsToRemoveSet = ...
Character[] myCharArray = myString.toCharArray();
int dst = 0;
for(int src=0; src<myCharArray.length; src++) {
if(!charsToRemoveSet.contains(myCharArray[src]))
myCharArray[dst++] = myCharArray[src];
}
myString = new String(myCharArray, 0, dst);
最佳答案
在外观上,选项1更清晰。仅此一项就足以让我选择它。同样,它也可能更快(尽管这取决于输入的长度)。在选项二中,您将设置第二个循环。 HashSet.contains()
运行自己的循环,增加了第二个延迟。
对于短字符串,您可能不会注意到有什么不同,但是再一次,很难说出第二秒发生了什么。