Nic*_*tra -2 java string count
目标是计算用户输入的短语中有多少元音.用户将输入一个短语
my name is nic
Run Code Online (Sandbox Code Playgroud)
输出将是这个例子的
Vowel Count: 4
Run Code Online (Sandbox Code Playgroud)
现在这是我的代码.
import cs1.Keyboard;
public class VowelCount {
public static void main(String[] args) {
System.out.println("Please enter in a sentence.");
String phrase = Keyboard.readString();
char[] phraseArray = phrase.toCharArray();
char[] vowels = new char[4];
vowels[0] = 'a';
vowels[1] = 'e';
vowels[2] = 'i';
vowels[3] = 'o';
vowels[4] = 'u';
int vCount = countVowel(phrase, phraseArray, vowels);
System.out.println("Vowel Count: " + vCount);
}
public static int countVowel(String word, char[] pArray, char[] v) {
int vowelCount = 0;
for (int i = 0; i < word.length(); i++) {
if (v[i] == pArray[i])
vowelCount++;
}
return vowelCount;
}
}
Run Code Online (Sandbox Code Playgroud)
使用我的代码我得到一个ArrayIndex错误.我知道修复但是当我改变时
for (int i = 0; i < word.length(); i++) {
Run Code Online (Sandbox Code Playgroud)
至
for (int i = 0; i < 5; i++) {
Run Code Online (Sandbox Code Playgroud)
它修复了错误但不计算元音.它输出
Vowel Count: 0
Run Code Online (Sandbox Code Playgroud)
那么我该如何解决这个问题呢?有没有比我尝试这样做更好的方法呢?
小智 5
只需使用正则表达式.会为你节省很多时间
int count = word.replaceAll("[^aeiouAEIOU]","").length();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2069 次 |
最近记录: |