【程序7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
package com.share.test01_10;
import java.util.Scanner;
/**
* 【程序7】题目:<br>
* 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
*
* @author brx
*/
public class Test07 {
public static void main(String[] args) {
test();
}
/**
* 思路:统计字符串中的英文字母,空格,数字,其他字符<br>
* 思路1:通过将字符串中的字符转化为字符数组来比较ASCII码表中的范围<br>
* 思路2:将英文字母,空格,数字分别用字符数组存储来遍历比较<br>
* 思路3:使用Character类中的判断方法
*/
public static void test() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要输入的字符串:");
String str = sc.nextLine();
test1_1(str);
// test1_2(str);
// test2(str);
// test3(str);
}
/**
* 思路1_1
*/
public static void test1_1(String str) {
char[] c = str.toCharArray();
int upperNum = 0;// 大写英文字母个数
int lowerNum = 0;// 小写英文字母个数
int digtaNum = 0;// 数字个数
int spaceNum = 0;// 空格个数
int otherNum = 0;// 其他字符个数
for (char a : c) {
if (a >= 65 && a <= 90) {
upperNum++;
} else if (a >= 97 && a <= 122) {
lowerNum++;
} else if (a >= 48 && a <= 57) {
digtaNum++;
} else if (a == 32) {
spaceNum++;
} else {
otherNum++;
}
}
System.out.println("大写英文字母个数: " + upperNum + " 小写英文字母个数: " + lowerNum + " 数字个数: " + digtaNum + " 空格个数: "
+ spaceNum + " 其他字符个数: " + otherNum);
}
/**
* 思路1_2
*/
public static void test1_2(String str) {
int upperNum = 0;// 大写英文字母个数
int lowerNum = 0;// 小写英文字母个数
int digtaNum = 0;// 数字个数
int spaceNum = 0;// 空格个数
int otherNum = 0;// 其他字符个数
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 'A' && c <= 'Z') {
upperNum++;
} else if (c >= 'a' && c <= 'z') {
lowerNum++;
} else if (c >= '0' && c <= '9') {
digtaNum++;
} else if (c == ' ') {
spaceNum++;
} else {
otherNum++;
}
}
System.out.println("大写英文字母个数: " + upperNum + " 小写英文字母个数: " + lowerNum + " 数字个数: " + digtaNum + " 空格个数: "
+ spaceNum + " 其他字符个数: " + otherNum);
}
/**
* 思路2
*/
public static void test2(String str) {
int upperNum = 0;// 大写英文字母个数
int lowerNum = 0;// 小写英文字母个数
int digtaNum = 0;// 数字个数
int spaceNum = 0;// 空格个数
int otherNum = 0;// 其他字符个数
String sl = "qwertyuiopasdfghjklzxcvbnm";
String su = sl.toUpperCase();
String sd = "0123456789";
String ss = " ";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (sl.indexOf(c) != -1) {
lowerNum++;
} else if (su.indexOf(c) != -1) {
upperNum++;
} else if (sd.indexOf(c) != -1) {
digtaNum++;
} else if (ss.indexOf(c) != -1) {
spaceNum++;
} else {
otherNum++;
}
}
System.out.println("大写英文字母个数: " + upperNum + " 小写英文字母个数: " + lowerNum + " 数字个数: " + digtaNum + " 空格个数: "
+ spaceNum + " 其他字符个数: " + otherNum);
}
/**
* 思路3
*/
public static void test3(String str) {
int upperNum = 0;// 大写英文字母个数
int lowerNum = 0;// 小写英文字母个数
int digtaNum = 0;// 数字个数
int spaceNum = 0;// 空格个数
int otherNum = 0;// 其他字符个数
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (Character.isUpperCase(c)) {
upperNum++;
} else if (Character.isLowerCase(c)) {
lowerNum++;
} else if (Character.isDigit(c)) {
digtaNum++;
} else if (Character.isSpaceChar(c)) {
spaceNum++;
} else {
otherNum++;
}
}
System.out.println("大写英文字母个数: " + upperNum + " 小写英文字母个数: " + lowerNum + " 数字个数: " + digtaNum + " 空格个数: "
+ spaceNum + " 其他字符个数: " + otherNum);
}
}
网友评论