[英]Counting special characters as spaces in java
I'm working on MacOS, with JDK 8. I want to count the number of special characters in the given string, but in the given code, special characters are counted as spaces. 我正在使用JDK 8在MacOS上工作。我想计算给定字符串中特殊字符的数量,但是在给定的代码中,特殊字符被计为空格。 What should I do? 我该怎么办?
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);
}
This is the output I'm getting: 这是我得到的输出:
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
It should be displaying 4 special characters instead of 4 spaces. 它应该显示4个特殊字符,而不是4个空格。
Change str.charAt(i)>=32
with str.charAt(i)==32
用str.charAt(i)==32
更改str.charAt(i)>=32
str.charAt(i)==32
The the output for "abc23@#$% "
will be: "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:1
number of Special characters in abc23@#$% are:4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.