题解 | #统计字符#
统计字符
https://www.nowcoder.com/practice/539054b4c33b4776bc350155f7abd8f5
import java.util.Scanner; import java.util.regex.Pattern; import java.util.regex.Matcher; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); int oldLen = str.length(); str=str.replace(" ", ""); //空串个数 int emptyStrCnt = oldLen - str.length(); char[] charArr = str.toCharArray(); //英文字母个数 int eCharStrCnt = getNum(1, charArr); //数字个数 int numStrCnt = getNum(2, charArr); //其他字符个数 int otherStrCnt = getNum(3, charArr); System.out.println(eCharStrCnt); System.out.println(emptyStrCnt); System.out.println(numStrCnt); System.out.println(otherStrCnt); } /*regex =1表示查英文字母个数 regex =2表示查数字个数 regex =3表示查其他字符个数 */ static int getNum(int regex, char[] charArr) { int num = 0; int totalLen = charArr.length; if (regex == 1) { for (int i = 0; i < totalLen ; i++) { num = Character.isLetter(charArr[i]) ? ++num : num; } return num; } else if (regex == 2) { for (int i = 0; i < totalLen ; i++) { num = Character.isDigit(charArr[i]) ? ++num : num; } return num; } else if (regex == 3) { for (int i = 0; i < totalLen; i++) { num = Character.isLetterOrDigit(charArr[i]) ? ++num : num; } return totalLen - num; } return num; } }