程序分析:利用while语句,条件为输入的字符不为’\n’.
方法一:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("请输入一段字符串……");
Scanner input = new Scanner(System.in);
String a = input.nextLine();
System.out.println(a);
char[] b = a.toCharArray();
int letters = 0;
int num = 0;
int blank = 0;
int others = 0;
int i = 0;
while (i < b.length) {
if ((b[i] >= 'A') && (b[i]) <= 'Z') {
letters++;
} else if ((b[i] >= 'a') && (b[i]) <= 'z') {
letters++;
} else if ((b[i] >= '0') && (b[i]) <= '9') {
num++;
} else if (b[i] == ' ') {
blank++;
} else {
others++;
}
i++;
}
System.out.println("英文字符共有:" + letters + "个。");
System.out.println("数字字符共有:" + num + "个。");
System.out.println("空格字符共有:" + blank + "个。");
System.out.println("其它字符共有:" + others + "个。");
}
}
方法二(使用编译器自带方法):
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一行字符");
String a = input.nextLine();
char[]b = a.toCharArray();
int letters = 0;
int blank = 0;
int num = 0;
int other = 0;
int i = 0;
while (i<b.length){
if(Character.isLetter(b[i])){
letters++;
}else if(Character.isSpaceChar(b[i])){
blank++;
}else if(Character.isDigit(b[i])){
num++;
}else {
other++;
}
i++;
}
System.out.println("英文字符共有:" + letters + "个。");
System.out.println("空格字符共有:" + blank + "个。");
System.out.println("数字字符共有:" + num + "个。");
System.out.println("其它字符共有:" + other + "个。");
}
}