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

时间:2014-03-11 18:54:44

标签: java string printing uppercase lowercase

所以我有这个我需要编写的程序。我应该从用户那里获得一个输入字符串,然后打印出字符串中有多少个大写字母和多少个小写字母。我在书中随处可见,我似乎无法找到有关如何打印大写和小写字母的内容。我也一直在做很多谷歌搜索,我找不到任何有用的东西。

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

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 个答案:

答案 0 :(得分:0)

如果首先将字符串转换为char [],则可以非常轻松地完成它们。然后,您可以对字符串中的每个字符使用isUpperCase(char c)。 http://www.tutorialspoint.com/java/character_isuppercase.htm

答案 1 :(得分:0)

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);
}

答案 2 :(得分:0)

由于某些奇怪的原因,你的for循环指的是你刚刚声明的空字符串,而不是你刚从用户那里读到的字符串。但是,如果你改变了,你可以在你的循环中使用strengur.charAt(i)获取字符串中的单个字符,你可以测试一个字母是否是Character.isUpperCase(ch)的大写字母,你可以检查一个小写字母与Character.isLowerCase(ch)

答案 3 :(得分:0)

我没有测试过,但我会做这样的事情。

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);

答案 4 :(得分:0)

似乎这样就可以解决问题,假设你做得不够多。只需使用一个临时字符串,并获得两者之间的区别:

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