题目的主要信息:
- 对于输入的字符串,分别统计出其中英文字母、空格、数字和其它字符的个数
具体做法:
我们遍历字符串,对于每个字符依次判断是否属于一下情况即可:
对于字母,我们查看是否在a-z或者A-Z之间,ASCⅡ码比较;
对于数字,我们查看是否在0-9之间,也是ASCⅡ码比较;
对于空格直接查看是否等于' ';
以上三种都不是则为其他字符。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int numbers = 0;
int words = 0;
int space = 0;
int other = 0;
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine(); //输入
for(int i = 0; i < str.length(); i++){ //遍历字符串
char c = str.charAt(i); //对于每个字符
if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) //字母
words++;
else if(c >= '0' && c <= '9') //数字
numbers++;
else if(c == ' ') //空格
space++;
else //其他
other++;
}
System.out.println("英文字母"+words+"数字"+numbers+"空格"+space+"其他"+other);
}
}
复杂度分析:
- 时间复杂度:,其中为字符串长度,需要遍历这个字符串
- 空间复杂度:,无额外空间