java

toiithl6  于 2021-07-09  发布在  Java
关注(0)|答案(5)|浏览(248)

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

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

    }
}

我知道代码有问题/不起作用,但你们谁知道我是如何得到大小写字母的数目来打印出来的?
提前谢谢!干杯

7nbnzgx9

7nbnzgx91#

如果你没有做得太多的话,这似乎可以达到目的。只需使用一个临时字符串,并获得两者之间的差异: int capLetterCount = originalString.length() - originalString.replaceAll("[A-Z]", "").length();

2w2cym1i

2w2cym1i2#

如果先将字符串转换为char[],则可以很容易地完成这些操作。然后可以对字符串中的每个字符使用isuppercase(char c)。http://www.tutorialspoint.com/java/character_isuppercase.htm

ftf50wuq

ftf50wuq3#

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

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

igsr9ssn4#

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

eiee3dmh5#

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

相关问题