这里的需要的知识点:
1、获取一行字符串,nextLine()
2、把字符串的每一个字符赋值到一个数值中
3、对比每一个数值在ASK码的范围,就可以确定它符号的类别
4、char字符ASK码的范围
(1)数字0到9: 48~57
(2)字母A到Z:65到90 a到z:97到122
(3)空格是32
以上知识点是需要熟记的,否则这个题完全做不出来。
思想: 首先做这种题必须想到的是如何做到把所有的字符输入之后如何对字符串进行遍历之后累加起来,首先要做的是,将这个字符串转化为char类型的数组,只有这个时候才能进行判断,单独的字符串是没法进行判断的。
String s1 = "ab2";
char [] c1 = s1.toCharArray(); //这行代码是将字符串转化为char的数组。
接着定义几个整形的数值
int num = 0; // 数字的个数
int letter = 0; //字母的个数
int space = 0; //空格的个数
int others = 0; //其他个数
之后用for循环遍历累加一下,利用 if 还有 else if 的嵌套将上面的知识点嵌套进去,完成对数字,字母,还有空格,其他字符的判断。最后上面所查到的信息进行累加。
详细代码如下:
package st;import java.util.Scanner;public class Test2 {public static void main(String args[]) {int num = 0; // 数字的个数int letter = 0; //字母的个数 int space = 0; //空格的个数int others = 0; //其他个数Scanner input =new Scanner(System.in);System.out.println("请输入一串字符,便于统计其中的字母,数字,空格,和其他字符");String str = Line();char arr[] = CharArray();for (int i = 0; i < arr.length; i++) {if (arr[i]>=48&&arr[i]<=57) { //字符是数字num++;}else if ((arr[i]>=65&&arr[i]<=90)||(arr[i]>=97&&arr[i]<=122)) {letter++;}else if (arr[i]==32) {space++;}else {others++;}}System.out.println("数字:"+num+"个, 字母:"+letter+"空格:"+space+"个, 其他"+others);}
}
本文发布于:2024-02-05 06:54:51,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170726771964149.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |