2016-10-23 75 views
-3

給定一個String str,返回一個字符串,所有元音都用數字替換,使用下列規則。用1,2,3替換所有元音... java

上部箱體元音應該用增加從1開始的奇數來代替。例如,第一個大寫元音將被替換爲1,第二個替換爲3,第三個替換爲5,依此類推。

小寫的元音應該從2開始逐漸增加偶數。例如,第一個小寫元音將被替換爲2,第二個替換爲4,第三個替換爲6,等等。

有些情況下,用作替換的數字不止一個數字。在這種情況下,應該用兩個數字替換元音。

實例:

replaceAllVowels( 「你好」)=> 「H2ll4」

replaceAllVowels( 「你好」)=> 「H1ll2」

replaceAllVowles(「你好,這是一個很長的字符串「)=>」h2ll4 th6r8 th10s 12s 14 r1618lly l20ng str22ng「

我迷失了這一個。幫助將不勝感激。

+0

香港專業教育學院得到了部分更換一個字母,但我不知道如何使它所以下一個加 – supercodekid

+0

我建議修改你的帖子包括你的代碼,並且包括關於你在哪裏感到困惑或者破壞的具體問題。 –

回答

1

我決定對你好。確保你從中學到了一些東西。你需要一個方法,用for循環遍歷這個單詞。在這個for循環中,你檢查每個字符。如果是某個字符,請將其替換並增加數字。

static final char[] lowerVowels = { 'a', 'e', 'i', 'o', 'u'};  
static final char[] upperVowels = { 'A', 'E', 'I', 'O', 'U' }; 

static boolean isUpperVowel(char ch) 
{ 
    for (char vowel : upperVowels) 
    { 
     if (vowel == ch) 
     { 
      return true; 
     } 
    } 
    return false; 
} 

static boolean isLowerVowel(char ch) 
{ 
    for (char vowel : lowerVowels) 
    { 
     if (vowel == ch) 
     { 
      return true; 
     } 
    } 
    return false; 
} 


String replaceAllVowels(String word) 
{ 
    int oddNumber = 1; 
    int evenNumber = 2; 

    for(int i = 0; i < word.length(); i++) 
    { 
     if(isUpperVowel()) 
     { 
      replace it 
      oddNumber += 2; 
     } 

     else if(isLowerVowel()) 
     { 
      replace it 
      evenNumber +=2; 
     } 

    } 

    return word; 

} 
0

您可以使用這樣的事情:

private static final char[] list = { 'A', 'E', 'I', 'O', 'U' }; 

public static String replaceAllVowels(String word) { 
    int length = word.length(); 
    char[] string = new char[length]; 
    for (int index = 0; index < length; index++) { 
     string[index] = getChar(word.charAt(index)); 
    } 

    return new String(string); 

} 

public static char getChar(char character) { 
    int number = isVowel(character); 
    return number != -1 ? (char) (number + 48) : character; 
} 

public static int isVowel(char character) { 
    int index = 0; 
    for (char vowel : list) { 
     if (vowel == character || vowel + 32 == character) { 
      return index; 
     } 
     index++; 
    } 
    return -1; 
} 

/** 
* You can use this instead if you want 
*/ 
private static int isVowel(char character) { 
    for (int index = 0; index < list.length; index++) { 
     char vowel = list[index]; 
     if (vowel == character || vowel + 32 == character) { 
      return index; 
     } 
    } 
    return -1; 
} 
相關問題