将特殊字符计为java中的空格

我正在使用 JDK 8 在 MacOS 上工作。我想计算给定字符串中特殊字符的数量,但在给定代码中,特殊字符被计为空格。我应该怎么办?


public static void main(String args[])

{

 String str;

 int lc=0,uc=0,d=0,s=0,spc=0;

 Scanner sc=new Scanner(System.in);

 System.out.print("Enter the string:");

 str=sc.nextLine();


 for(int i=0;i<str.length();i++)

   {

    if(str.charAt(i)>='a' && str.charAt(i)<='z')

    {

    lc++;

    }

    else if(str.charAt(i)>='A' && str.charAt(i)<='Z')

    {

    uc++;

    }

    else if(str.charAt(i)>='0' && str.charAt(i)<='9')

    {

    d++;

    }

    else if(str.charAt(i)>=32)

    {

    s++;

    }

    else if(str.charAt(i)>=33 && str.charAt(i)<=47 || str.charAt(i)==64)

    {

    spc++;

    }

   }

System.out.println("number of small characters in "+str+" are:"+lc);

System.out.println("number of CAPITAL characters in "+str+" are:"+uc);

System.out.println("number of digits in "+str+" are:"+d);

System.out.println("number of Spaces in "+str+" are:"+s);

System.out.println("number of Special characters in "+str+" are:"+spc);

}

这是我得到的输出:


Enter the string:abc23@#$% 


number of small characters in abc23@#$% are:3


number of CAPITAL characters in abc23@#$% are:0


number of digits in abc23@#$% are:2


number of Spaces in abc23@#$% are:4


number of Special characters in abc23@#$% are:0

它应该显示 4 个特殊字符而不是 4 个空格。


浮云间
浏览 120回答 1
1回答

胡子哥哥

更改str.charAt(i)>=32为str.charAt(i)==32的输出"abc23@#$% "将是:number of small characters in abc23@#$%&nbsp; are:3number of CAPITAL characters in abc23@#$%&nbsp; are:0number of digits in abc23@#$%&nbsp; are:2number of Spaces in abc23@#$%&nbsp; are:1number of Special characters in abc23@#$%&nbsp; are:4
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java