java - 从命令行检查字符数

标签 java command-line

我正在尝试解决这个问题:编写一个程序,向命令行传递一个字符串并显示该字符串中大写字母的数量。

测试是 ProgrammingIsFun,因此计数为 3。

这是我目前的情况

public static void main(String[] args) {


    int count = 0;


    for(int i = 0; i < args.length;i++) {
        for(int j = 0; j >= i; j++)
        if(Character.isUpperCase(args[i].charAt(j)))
            count++;
    }
    System.out.print("The number of upper cases are: " + count);
}

当它运行时,它确实计算了正确的大写字母数量,但它在到达字符末尾时运行(16)。我不知道如何在最后一个字符之后立即停止循环。我知道计数是正确的,因为我可以在调试中看到它。我可以在变量中看到一个叫做 arg0 的东西。字符数正确,但我无法使用。

我还在学习,我现在不能使用对象或类似的东西。 任何帮助,将不胜感激。或者如果你能指出我可以阅读的地方。我尝试了这些文档,但内容很多,我很快就不知所措了。

最佳答案

你在内循环中有一个错误:

for(int j = 0; j >= i; j++)

请注意,外层循环针对每个命令行参数运行,内层循环针对 i 给出的参数的每个字符运行。

所以改成

for(int j = 0; j < args[i].length(); j++)

关于java - 从命令行检查字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54472223/

相关文章:

java - 通过 Intent 传递 ArrayList<Double>

java - Android 程序启动时崩溃

regex - 如何在Groovy的命令行参数中使用星号(*)?

ios - 从越狱应用程序 ios 7 启动命令行

gcc - 我可以使用哪些行军/音乐选择?

perl - 如何创建Perl脚本以获取一些 "named"命令行参数?

java - 非 void 方法需要 synchronized 关键字吗?

java - 为什么我在测试中收到 NullPointerException?

java - IBM DB2 的 Hibernate Pojo 生成器

windows - 用于检查 64 位或 32 位操作系统的批处理文件