我正在编写一个计算字符串中元音量的程序,如果元音多于辅音,则返回true。如果没有,那就错了。这是一个家庭作业,但跑步者不属于它。我想测试看看我的程序是否有效,它应该是什么(希望如此!)。
现在,对于我们所有的家庭作业和实验室,通常会给出跑步者。我们从未被教过如何写一个,这是非常糟糕的,因为我想检查我的代码。我试图模仿过去的跑步者,但我一直在跑步者中遇到错误,其中一些内容如下:"找不到符号" 我该如何为这个程序创建一个跑步者?
这是我的代码:
import static java.lang.System.*;
public class StringAnalyzer {
//String word;
public static boolean hasMoreVowelsThanConsonants(String word) {
// String word = string.toUpperCase();
int vowelCount;
int newLength;
for (vowelCount = 0; word.length() >= 1; vowelCount++) {
if (word.indexOf("A") != 1) {
vowelCount++;
} else if (word.indexOf("E") != 1) {
vowelCount++;
} else if (word.indexOf("I") != 1) {
vowelCount++;
} else if (word.indexOf("O") != 1) {
vowelCount++;
} else if (word.indexOf("U") != 1) {
vowelCount++;
}
newLength = (word.length() - vowelCount);
if (vowelCount > newLength) {
return true;
} else {
return false;
}
}
return true;
}
}
如果你发现任何问题,除了建议我总是如此:)
这是我的"跑步者" (非常糟糕,哈哈):
import static java.lang.System。*;
import static java.lang.System.*;
public class StringAnalyzerRunnerCDRunner {
public static void main(String[] args) {
hasMoreVowelsThanConsonants("DOG");
}
}
谢谢:)
答案 0 :(得分:0)
我不确定你的问题是什么,但既然你要求就你编写的代码提出建议,那就是我的2c。
一些调整:
public class StringAnalyzer {
public static void main(String[] args) {
String word;
word = "Dog";
System.out.println(word + " has more vowels than consonants? " + hasMoreVowelsThanConsonants(word));
word = "Ace";
System.out.println(word + " has more vowels than consonants? " + hasMoreVowelsThanConsonants(word));
}
public static boolean hasMoreVowelsThanConsonants(String word) {
int vowelCount = 0;
int consonantCount = 0;
String[] split = word.split("");
for(String s : split){
if(s.toUpperCase().matches("A|E|I|O|U")){
vowelCount++;
} else {
consonantCount++;
}
}
return vowelCount > consonantCount;
}
}
我改变了一些观点:
word.split("");
,这会给你一个数组
字符串中的字符,使用它会更好。有很多方法可以做到这一点。您可能想要考虑如果计数相等会发生什么...或者如果单词为null,则保护不受空指针等的影响,但这取决于您;)
答案 1 :(得分:0)
首先,您收到的错误消息error: cannot find symbol
是:未导入打包的类,和/或您拼错了变量,类或方法名称
另一种方法:
您可以从public class StringAnalyzer{
到public class Main {
或class StringAnalyzer
我不想偏离你所拥有的东西太远,但这是另一种方法的片段:
import java.lang.*;
import java.util.Scanner;
class StringAnalyzer
{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
String sampleword = in.nextLine();
System.out.println("You entered string: "+sampleword);
System.out.println("Is your vowels more than the consonants: "+ hasMoreVowelsThanConsonants(sampleword));
}
private static boolean hasMoreVowelsThanConsonants(String word) {
int vowelCount = 0;
int newLength = 0;
for (int i = 0; i < word.length(); i++) {
if (word.charAt(i) == 'A') {
vowelCount++;
} else if (word.charAt(i) == 'E') {
vowelCount++;
} else if (word.charAt(i) == 'I') {
vowelCount++;
} else if (word.charAt(i) == 'O') {
vowelCount++;
} else if (word.charAt(i) == 'U') {
vowelCount++;
}
}
newLength = word.length() - vowelCount;
return vowelCount > newLength;
}
}
}