有 Java 编程相关的问题?

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

java如何计算字符串中的大小写字母?

哟,所以我试图制作一个程序,可以从用户那里获取字符串输入,例如:“从前”,然后报告字符串包含多少大小写字母:

输出示例:字符串有8个大写字母 字符串有5个小写字母,我应该使用字符串类而不是数组,关于如何开始使用这个字符串有什么提示吗?提前感谢,以下是我到目前为止所做的:D

import java.util.Scanner;
public class q36{
    public static void main(String args[]){

        Scanner keyboard = new Scanner(System.in);
        System.out.println("Give a string ");
        String input=keyboard.nextLine();

        int lengde = input.length();
        System.out.println("String: " + input + "\t " + "lengde:"+ lengde);

        for(int i=0; i<lengde;i++) {
            if(Character.isUpperCase(CharAt(i))){

            }
        }
    }
}

共 (6) 个答案

  1. # 1 楼答案

    使用正则表达式:

    public Counts count(String str) {
        Counts counts = new Counts();
        counts.setUpperCases(str.split("(?=[A-Z])").length - 1));
        counts.setLowerCases(str.split("(?=[a-z])").length - 1));
        return counts;
    }
    
  2. # 2 楼答案

    您可以尝试以下代码:

    public class ASCII_Demo
    {
        public static void main(String[] args)
        {
            String str = "ONCE UPON a time";
            char ch;
            int uppercase=0,lowercase=0;
            for(int i=0;i<str.length();i++)
            {
                ch = str.charAt(i);
                int asciivalue = (int)ch;
                if(asciivalue >=65 && asciivalue <=90){
                    uppercase++;
                }
                else if(asciivalue >=97 && asciivalue <=122){
                    lowercase++;
                }
            }
            System.out.println("No of lowercase letter : " + lowercase);
            System.out.println("No of uppercase letter : " + uppercase);
        }
    }
    
  3. # 3 楼答案

    只需创建在找到小写或大写字母时递增的计数器,如下所示:

    for (int k = 0; k < input.length(); k++) {
        /**
         * The methods isUpperCase(char ch) and isLowerCase(char ch) of the Character
         * class are static so we use the Class.method() format; the charAt(int index)
         * method of the String class is an instance method, so the instance, which,
         * in this case, is the variable `input`, needs to be used to call the method.
         **/
        // Check for uppercase letters.
        if (Character.isUpperCase(input.charAt(k))) upperCase++;
    
        // Check for lowercase letters.
        if (Character.isLowerCase(input.charAt(k))) lowerCase++;
    }
    
    System.out.printf("There are %d uppercase letters and %d lowercase letters.",upperCase,lowerCase);
    
  4. # 4 楼答案

    Java8中的解决方案:

    private static long countUpperCase(String s) {
        return s.codePoints().filter(c-> c>='A' && c<='Z').count();
    }
    
    private static long countLowerCase(String s) {
        return s.codePoints().filter(c-> c>='a' && c<='z').count();
    }
    
  5. # 5 楼答案

    import java.io.*;
    import java.util.*;
    public class CandidateCode {
        public static void main(String args[] ) throws Exception {
             int count=0,count2=0,i;
            Scanner sc = new Scanner(System.in);
             String s = sc.nextLine();
             int n = s.length();
             for( i=0; i<n;i++){
                 if(Character.isUpperCase(s.charAt(i)))
                     count++;
                 if(Character.isLowerCase(s.charAt(i))) 
                 count2++;
             }
                 System.out.println(count);
                 System.out.println(count2);
             }
    
    
    
    }
    
  6. # 6 楼答案

    Java8

    private static long countUpperCase(String inputString) {
            return inputString.chars().filter((s)->Character.isUpperCase(s)).count();
        }
    
        private static long countLowerCase(String inputString) {
            return inputString.chars().filter((s)->Character.isLowerCase(s)).count();
        }