2017-10-23 9 views
0

母音に続くすべてのrをhに置き換えるには、このプログラムが必要です。 これは単なるテストプログラムです。私の実際の割り当ては、 "Jaws"スクリプトのすべてのrを母音に続くhで置き換え、その文字列に対して他のさまざまな作業を行うことです。文字列内の特定の文字のみを置き換えるString.replace()を取得できません

public static void main(String[] args) { 
     String s = "Hey, I'm from boston. harbor, fotter, slobber, murder."; 
     System.out.println(replace(s)); 

    } 

    //this method should replace r with h if it follows a vowel. 
    public static String replace(String s) { 
     String newS = ""; 
     String vowels ="aeiouAEIOU"; 
     for (int i = 1; i < s.length(); i++) { 
      if (s.charAt(i) == 'r' && isVowel(s.charAt(i-1))) { 
       newS = s.replace("r", "h"); 
      } 
     } 
     return newS; 
    } 
    //this method will check if a character is a vowel or not. 
    public static Boolean isVowel(char s) { 
     String vowels="aeiouAEIOU"; 
     if (vowels.contains("" + s)) { 
      return true; 
     } 
     return false; 
    } 
} 
+1

のようになります言ったように特定のインデックスに置き換えるための文字列ビルダを使用してください、ブレークポイントやSystem.out.println-Statementsを使用してコードをデバッグしましたか? – luk2302

+1

デバッガを使って何が起きているのかを調べる – Jens

+0

'replace'は特定のものの代わりにすべてのオカレンスを置き換えます。 –

答えて

0

あなたの方法を置き換える方法を以下Replace a character at a specific index in a string? はあなたのコードの生産ではなく、出力を期待したものとは何

public static String replace(String s) { 
StringBuilder myName = new StringBuilder(s); 

for (int i = 1; i < s.length(); i++) { 
    if (s.charAt(i) == 'r' && isVowel(s.charAt(i - 1))) { 
    myName.setCharAt(i, 'h'); 

    } 
} 
return myName.toString(); 

}

+0

これは、ありがとう! –

+0

@John Antonioは答えとしてそれを受け入れてください。ありがとうございました – shakeel

関連する問題