我正在使用 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:3number of CAPITAL characters in abc23@#$% are:0number of digits in abc23@#$% are:2number of Spaces in abc23@#$% are:4number of Special characters in abc23@#$% are:0它應該顯示 4 個特殊字符而不是 4 個空格。
1 回答

胡子哥哥
TA貢獻1825條經驗 獲得超6個贊
更改str.charAt(i)>=32為str.charAt(i)==32
的輸出"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
添加回答
舉報
0/150
提交
取消