0

2 つの文字列を引数として受け取り、2 番目の文字列のすべてのインスタンスを削除して最初の文字列を返す、filterOut というメソッドを作成したいと考えています。例: filterOut("こんにちは、お元気ですか?" , "h"); 「こんにちは、私の友人、お元気ですか?」を返します。そして、filterOut("abchelloabcfriendabc" , "abc"); 「ハローフレンド」を返します

    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);                     
     }

このコードは、メイン メソッドで使用する最初の例でのみ機能します。2番目の例でも機能させるにはどうすればよいですか?

4

2 に答える 2

0

あなたは簡単に行うことができます:

str1.replace(str2, "");

またはあなたの例では、

second.replace(phrase, "");

また、すでにメソッドがある場合は、このためのメソッドを記述する必要はありません:-)

于 2013-03-25T04:07:25.077 に答える
0

置換を使用できます

public static String filterOut(String phrase) {
    return phrase.replace(phrase, "");
}

編集:分割方法も使用できます

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;
 }
于 2013-03-25T04:08:48.183 に答える