繁体   English   中英

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

[英]How to print out the number of capital letters in a string - java

所以我有需要编写的程序。 我应该从用户那里获得输入字符串,然后打印出字符串中有多少个大写字母和多少个小写字母。 我在书中到处都看过,似乎找不到关于如何打印大写和小写字母的内容。 我也一直在进行大量的Google搜索,但找不到任何有用的信息。

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

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


    }
}

我知道代码有错误/行不通,但是你们中的任何人都知道我如何获得大写,小写字母的数量来打印出来吗?

提前致谢! 干杯

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

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

由于某些奇怪的原因,您的for循环引用的是您刚刚声明的空字符串,而不是您刚刚从用户读取的字符串。 但是,如果对此进行更改,则可以在循环中使用strengur.charAt(i)来获取字符串中的各个字符,并可以使用Character.isUpperCase(ch)来测试字母是否为大写字母,并且可以检查下一个字母是否为大写。带有Character.isLowerCase(ch)大小写字母。

我还没有测试过,但是我想做这样的事情。

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

假设您没有做过多的工作,这似乎可以解决问题。 只需使用一个临时字符串,即可获得两者之间的区别:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM