在Java中产生小写字符而不是大写

Posted

技术标签:

【中文标题】在Java中产生小写字符而不是大写【英文标题】:Produce lowercase character instead of uppercase in 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),这样代码更容易阅读。 【参考方案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);
        


【讨论】:

以上是关于在Java中产生小写字符而不是大写的主要内容,如果未能解决你的问题,请参考以下文章

用java写一个将大写的MAC地址转化为小写,切把分割用的-转化为:,首先判断输入是不是为MAC地址,在转换

java 判断字符串首字母大写,非首字母小写代码

java获得汉字的大写字母,其他字符不变

java字符大小写转换

Java UUID是不是区分大小写

java中哪些首字母需要大写