如何替换数组java中的字符?

时间:2012-10-29 00:46:42

标签: java

我正在做一个函数,我需要获取用户输入并用用户放置的内容替换数组中的所有元音。这是我的阵列:老实说,我不知道我在做什么。

char [] letters = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'}

我正在考虑在if内做一个嵌套的for loop,但就像我说我不知道​​我是否朝着正确的方向前进。

/********************************************************************************
  This function will prompt the user to replace all vowels in the array
********************************************************************************/
public static void replace( char [] letters ){      
    for(int i =0; i < letters.length; i++){
       if(i >= 'A')
        if(i <='Z')
         System.out.println(letters[i]);
        else
          break;        
    }        
}

4 个答案:

答案 0 :(得分:0)

除了打印掉所有大写字母外,你的循环看起来不会做太多。您需要一些代码来显示提示并获取用户输入。您还需要一种方法来测试角色是否是元音。做后者的一种方法是:

if ("AEIOU".indexOf(letter) >= 0) {
    // letter is a vowel
}

如果您还需要处理小写字母,则可以使用"AEIOUaeiou".indexOf(letter)"AEIOU".indexOf(Character.toUpperCase(letter))。这将嵌套循环隐藏在标准API函数调用中,这使您的代码更易读,更容易调试。 (您可以放心地假设indexOf写得正确。)

对于用户互动,您应该考虑使用Scanner包裹System.in。或者(也许更好),使用Console来管理所有用户I / O.看看this tutoral,看看你是否可以自己解决问题,如果遇到问题,请发布另一个问题。

答案 1 :(得分:0)

如果我正确解释您的问题,您想要将a,e和i替换为用户输入的其他字符。

  1. 您将索引“i”与字符进行比较,您可能希望将其更改为
  2. if(letters[i] >= 'A') 
    if(letters[i] <= 'Z') 
    System.out.println(letters[i]); 
    else 
    break; 
    

    另一件事,如果你想测试它是否是一个元音,你可以像这样将所有的比较结合在一起:

    if(letters[i] == 'A' ||
       letters[i] == 'E' ||
       letters[i] == 'I' ||
       letters[i] == 'O' ||
       letters[i] == 'U')
    letters[i] = users_input
    

答案 2 :(得分:0)

也许是这样的?

public static void replace( char [] letters )
{      

    Scanner s = new Scanner(System.in);

    for(int i = 0; i < letters.length; i++)
    {

        if ("AEIOU".indexOf(letters[i]) >= 0)
        {
              System.out.println("\nVowel Found, What should it be replaced with?");
              String line = s.read();
              letter[i] = line.charAt(0);
        }
    }

}

答案 3 :(得分:0)

假设用户输入为b,您可以实现此目的:

public static char [] replace(char [] src) {
    String s = new String(src);
    s = s.replaceAll("[aeiouAEIOU]", "b");

    return s.toCharArray();
}