我想创建一个名为filterOut的方法,它接受两个字符串作为参数,并返回第一个字符串,删除第二个字符串的所有实例。例如:filterOut(“你好,我的朋友,你好吗?”,“h”);返回“ello我的朋友,你好吗?”和filterOut(“abchelloabcfriendabc”,“abc”);返回“hellofriend”
public static String filterOut(String phrase, String second){
int counter = 0;
int length = phrase.length();
String filtered = "";
while(counter < length){
String letter = phrase.substring(counter, counter + 1);
if(!letter.equals(second)){
filtered = filtered + letter;
}
counter++;
}
return filtered;
public static void main(String args[]){
String next = filterOut("hello my friend, how are you?" , "h");
System.out.println(next);
}
此代码仅适用于我在main方法中使用它时的第一个示例。我怎样才能让它适用于第二个例子呢?
答案 0 :(得分:0)
您可以这样做:
str1.replace(str2, "");
或者在你的例子中,
second.replace(phrase, "");
另外:当有一个方法时,没有必要为此编写方法: - )
答案 1 :(得分:0)
您可以使用replace
public static String filterOut(String phrase) {
return phrase.replace(phrase, "");
}
修改强>: 您也可以使用split方法
public static String filterOut(String phrase, String second) {
String filtered = "";
for (String each : phrase.split(second)) {
filtered = filtered + each;
}
return filtered;
}
您的方法无法正常工作,因为您在下面一行中逐个字符进行比较。这就是为什么它适用于filterOut("hello my friend, how are you?" , "h");
而不适用于输入filterOut("abchelloabcfriendabc" , "abc");
String letter = phrase.substring(counter, counter + 1);
if(!letter.equals(second)){
filtered = filtered + letter;
}