【问题标题】:Produce lowercase character instead of uppercase in Java在Java中产生小写字符而不是大写
【发布时间】:2021-12-06 04:17:20
【问题描述】:

输出正常但是输出是大写字母,我希望输出是小写字符,我该怎么办?

import java.util.Scanner;

public class Q2 {
      
        public static void main(String[] args) {
            int a[]=new int[26];
            Scanner sc =  new Scanner (System.in);
            String str=sc.nextLine();
            for(int i = 0; i<str.length();i++) {
                if(str.charAt(i)>=65 && str.charAt(i)<=90) {
                    a[str.charAt(i)-65]++;
                }
                else if(str.charAt(i)>=97 && str.charAt(i)<=122) {
                    a[str.charAt(i)-97]++;
                }
            }
            for(int i=0;i<26;i++) {
                if(a[i]>0) {
                    System.out.print(" "+(char )(i+65)+ "(" + a[i]+")");
                }
                
            }
                    
        }       

}

【问题讨论】:

  • 您可以使用 char 文字代替 int 文字,例如'A' 代替 65'a' 代替 97。这会让你更容易看到你实际在做什么“总和”。
  • 另外,定义一个变量char c = str.charAt(i);,那么你就不需要一直重复str.charAt(i),这样代码更容易阅读。

标签: java string character lowercase


【解决方案1】:

'A' 是 65。'a' 是 97。在最终循环中使用 97 而不是 65。

或者直接使用'a' 代替数字。这使您在该代码中所做的工作更加明显。

【讨论】:

  • 尼特:'@' 是 64; 'A' 是 65。
  • @AndyTurner:是的,已修复。谢谢。
【解决方案2】:

将整个字符串转换为小写可能更直接,以避免检查大写字母。

此外,如前所述,使用字符文字作为 a 而不是 97 会使代码更具可读性。

Scanner sc = new Scanner(System.in);
int a[] = new int[26];

String str = sc.nextLine().toLowerCase();

for (char c : str.toCharArray()) {
    if (c >= 'a' && c <= 'z') {
        a[c - 'a']++;
    }
}
for (char c = 'a'; c <= 'z'; c++) {
    int i = c - 'a';
    if (a[i] > 0) {
        System.out.print(" "+ c + "(" + a[i] + ")");
    }
}

【讨论】:

    【解决方案3】:

    查看这篇文章并接受答案How do I convert strings between uppercase and lowercase in Java?

    你可能会做这样的事情

    import java.util.Scanner;
    
    public class Q2 {
          
            public static void main(String[] args) {
                int a[]=new int[26];
                Scanner sc =  new Scanner (System.in);
                String str=sc.nextLine();
                String lowerCaseInput = str.toLowerCase();
                System.out.print(lowerCaseInput);
            }
    }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-14
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 2012-01-03
      • 2018-06-17
      • 1970-01-01
      相关资源
      最近更新 更多