题意整理。
- 输入一行字符串。
- 统计其中英文字母、空格、数字和其它字符的个数。
方法一(循环)
1.解题思路
- 定义对应类型的计数变量,循环遍历输入的字符串。
- 通过计数变量,统计对应类型字符的个数。统计完成之后,输出计数变量。
动图展示:
2.代码实现
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();
int n=str.length();
//遍历输入的字符串
for(int i=0;i<n;i++){
char c=str.charAt(i);
//如果是数字,数字对应计数加1
if(c>='0'&&c<='9'){
numbers++;
}
//如果是字母,字母对应计数加1
else if((c>='a'&&c<='z')||(c>='A'&&c<='Z')){
words++;
}
//如果是空格,空格对应计数加1
else if(c==' '){
space++;
}
//其它字符对应计数加1
else{
other++;
}
}
System.out.println("英文字母"+words+"数字"+numbers+"空格"+space+"其他"+other);
}
}
3.复杂度分析
- 时间复杂度:需要遍历整个字符串,所以时间复杂度为。
- 空间复杂度:需要额外常数级别的空间,所以空间复杂度为。