java - For循环正在打印出多个打印语句
问题描述
我正在为课程制作一个程序,它可以打印出单词中元音的数量,任何帮助将不胜感激。目前,程序打印出正确数量的元音,但之前多次打印出打印语句“vowels:”。我试过移动打印语句和大括号,但它说“错误:'else if'没有'if'”。如果解决方案显而易见,我对 Java 完全陌生,很抱歉。先感谢您 :)
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter text: ");
String text = input.nextLine();
text = text.toLowerCase();
int vowels= 0;
int l;
l= text.length();
for (int i = 1; i < text.length(); i++) {
String wordPRT = text.substring(i,i+1);
if (wordPRT.compareToIgnoreCase("a")==0 || wordPRT.compareToIgnoreCase("e")==0||
wordPRT.compareToIgnoreCase("i")==0
|| wordPRT.compareToIgnoreCase("o")==0
|| wordPRT.compareToIgnoreCase("u")==0){
vowels++;
System.out.println("vowels: " + vowels);
}
else if(vowels<1){
System.out.print("no vowels");
}
}
}
}
解决方案
您在 for 循环中打印所有内容,而不是计算元音并在最后打印。
尝试类似:
int vowelsCounter = 0;
for(...) {
... logic to count the vowels
if(isvowel(string.charAt(i)){
vowelsCountr++;
}
}
if(vowelsCounter > 0 ) {
printSomething
}
else {
print something else
}
此外,您不应该使用subString
这种循环,但是string.charAt(i)
推荐阅读
- c# - 将基类转换为 .NET Core 中的派生类
- activerecord - Yii2 ActiveRecord 如何从模型中仅获取填充的属性?
- google-drive-api - 无法使用 Google Colab 创建/上传或打开笔记本
- angular - updateOne 的 ngrx 实体没有改变状态
- android - 有没有办法检测颤振是否可以访问互联网?
- keras - 在 ubuntu 中为 keras 后端安装 tensorflow 时,我应该将它安装在虚拟环境还是主要 python 文件中
- c - C 错误:获取临时数组的地址
- python - ImportError:没有名为 obd 的模块
- python - 问:如何在 python 中计算带有测量误差的斜率?
- algorithm - 在未排序的数组中查找第 x 个最小元素