有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何打印字符串中的大写字母数

所以我有一个我需要写的程序。我应该从用户那里得到一个输入字符串,然后打印出字符串中有多少个大写字母和多少个小写字母。我在我的书中到处都找过了,但似乎找不到任何关于如何打印大写和小写字母的信息。我也做了很多谷歌搜索,但找不到任何有用的东西

无论如何,这是我的代码:

import java.util.Scanner; //calls out the method to get input from user

public class Verk1 {
    public static void main(String args[])
    {
        Scanner innslattur = new Scanner(System.in); //input gotten from user

        System.out.println("Sláðu inn textabrot í há- og lágstöfum.");
        System.out.println("Forritið mun þá segja þér hve margir stafir eru af hverri gerð.");
        System.out.println("Textabrot: ");

//The printouts before tell the user to enter in a string, the program will then print out //how many upper- and lowercase letters there are.

        String strengur = innslattur.nextLine();

        String hastafir = "";

        for (int i=0; i<hastafir.length();i++);
        {
            System.out.println("Í textabrotinu eru " + hastafir + " hástafir");
        }


    }
}

我知道代码有问题/不起作用,但你们谁知道我是如何得到大小写字母的数量来打印出来的

提前谢谢! 干杯


共 (5) 个答案

  1. # 1 楼答案

    我还没有测试过,但我希望能做这样的事情

    String text = "This IS My TEXT StrinG";
    int upperCaseCounter = 0;
    int lowerCaseCounter = 0;
    for (int i=0; i<text.length(); i++)
       {
       if (Character.isUpperCase(text.charAt(i)))
          {
           upperCaseCounter++;
          }
       else if(Character.isLowerCase(text.charAt(i)))
         {
           lowerCaseCounter++;
         }
     }
    
    System.out.println("Total Uppercase Characters: " + upperCaseCounter);
    System.out.println("Total Lowercase Characters: " + lowerCaseCounter);
    
  2. # 2 楼答案

    public void printCapsAndLowercaseCounts(String s) {
        int uppercase = 0;
        int lowercase = 0;
        if (s != null) {
            String s1 = s.toUpperCase();
            String s2 = s.toLowerCase();
    
            for (int i = 0; i < s.length(); i++) {
                if (s.charAt(i) == s1.charAt(i) ^ s.charAt(i) == s2.charAt(i)) {
                    if (s.charAt(i) == s1.charAt(i)) uppercase++;
                    else lowercase++;
                }
            }
        }
        System.out.println(uppercase + " " + lowercase);
    }
    
  3. # 3 楼答案

    出于某种奇怪的原因,For循环引用的是刚刚声明的空字符串,而不是刚刚从用户处读入的字符串。但是,如果您改变了这一点,那么在循环中,您可以使用strengur.charAt(i)获取字符串中的各个字符,并且可以使用Character.isUpperCase(ch)测试字母是否为大写字母,并且可以使用Character.isLowerCase(ch)检查小写字母

  4. # 4 楼答案

    如果你没有做得太多的话,这似乎会起作用。只需使用一个临时字符串,并获得两者之间的差异:

    int capLetterCount = originalString.length() - originalString.replaceAll("[A-Z]", "").length();