import java.util.*;
/**
* 3、编写一个程序,输出一个字符串中的大写英文字母数,小写英文字母数以及非英文字母。
提示:
方法一:使用循环提取字符,判断字符是否在A-Z 、a-z区间
方法二:定义大写、小写字母字符串列表,使用循环提取字符,判断字符在大写字母还是小写字母列表
方法三:使用Character.isUpperCase和Character.isLowerCase直接判断字符类型
* @author 万星明
*/
public class Work3 {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串:");
String st = sc.next();
way1(st);
way2(st);
way3(st);
}
/**
* 方法一:使用循环提取字符,判断字符是否在A-Z 、a-z区间
* @param st
*/
public static void way1(String st) {
int countA = 0,counta = 0,count= 0;
for(int i=0;i<st.length();i++) {
if(st.charAt(i)<='Z'&&st.charAt(i)>='A') {
countA++;
}else if(st.charAt(i)<='z'&&st.charAt(i)>='a') {
counta++;
}else {
count++;
}
}
System.out.println("大写字符数:"+countA+"\t小写字符数:"+counta+"\t非英文字母字符数:"+count);
}
/**
* 方法二:定义大写、小写字母字符串列表,使用循环提取字符,判断字符在大写字母还是小写字母列表
* @param st
*/
public static void way2(String st) {
int countA = 0,counta = 0,count= 0;
String M = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String m = "abcdefghijklmnopqrstuvwxyz";
for(int i=0;i<st.length();i++) {
if(M.contains(st.substring(i,i+1)))
countA++;
else if(m.contains(st.substring(i,i+1)))
counta++;
else
count++;
}
System.out.println("大写字符数:"+countA+"\t小写字符数:"+counta+"\t非英文字母字符数:"+count);
}
/**
* 方法三:使用Character.isUpperCase和Character.isLowerCase直接判断字符类型
*/
public static void way3(String st) {
int countA = 0,counta = 0,count= 0;
for(int i=0;i<st.length();i++) {
if(Character.isUpperCase(st.charAt(i)))
countA++;
else if(Character.isLowerCase(st.charAt(i)))
counta++;
else
count++;
}
System.out.println("大写字符数:"+countA+"\t小写字符数:"+counta+"\t非英文字母字符数:"+count);
}
}
网友评论