java - 为什么我的计数器在每次循环执行代码后没有增加?

标签 java

该程序应该检查您输入的字符串中的元音,然后输出元音的数量。但是,当我运行该程序时,计数器显示 0。Eclipse 没有显示任何错误。

我希望如果我输入hello然后它会显示2 ,但总是显示 0 .

import javax.swing.*;
public class Lab5 {
  public static boolean isVowel(char x) {
    if (x == 'A' || x == 'E' || x == 'I' || x == 'O' || x == 'U') {
        return true;
    }
    else {
        return false;
    }
  }
  public static void main(String[] args) {
    String seq;
    boolean vowel;
    int counter = 0;
    seq = JOptionPane.showInputDialog(null, "Please enter a sequence of characters: ");
    seq.toUpperCase();
    for (int i=0; i<seq.length(); i++) {
        vowel = isVowel(seq.charAt(i));
        if (vowel == true) {
            counter++;
        }   
    }
    JOptionPane.showMessageDialog(null, "The number of vowels in your sequence of characters is : " + counter);
  }
}

最佳答案

这是因为 seq.toUpperCase() 并没有按照您的想法进行操作。它返回String的副本,转换为大写,但不会改变原始内容。 (String 在 Java 中是不可变的,因此无法更改它。)

尝试将该行更改为

seq = seq.toUpperCase();

关于java - 为什么我的计数器在每次循环执行代码后没有增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26208346/

相关文章:

java - ArrayList(集合<?扩展E> c)

java - Java API 中的空对象模式?

java - Eclipse 上的哪个选项可以定义 "{"和 "}"将在同一行并自动完成?

java - 尝试使用 Graphics2D 在 JPanel 上渲染时,如何修复此 NullPointerException?

java - 从 JPanel 中删除 JPanel - 仅适用于其自己的类

java - 在 Java 中,您可以浏览嵌套 zip 文件的内容而不膨胀父文件吗?

java - 我的 for 循环在我的 int 数组中添加了额外的元素,我不明白为什么

java - 使用spring分离测试和数据有什么缺点吗?

java kafka 通过唯一键获取分区中的消息偏移量

java - 从表格单元格按钮打开对话框