在⼀个字符串中,统计⼤写字母个数,⼩写字母个数,其他字符
个数的四种算法
题⽬描述:编写程序,输出字符串中的⼤写字母、⼩写⼩母和其他的个数。如有⼀个字符串"Helle, This is A test textfile.123456, tannk
you!!",则其⼤写字母个数:3,⼩写字母个数:29,其他字符个数:18.
这⾥提供了四种算法,第⼀种是我们⽐较好理解的,也属于硬编码问题,其他三种⽅法要借助JAVA语⾔的jdk提供的api。
⽅法⼀:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js分析字符串内容</title>
<!--实现⼀个函数,输出某字符串⾥有⼏个⼤写字母,⼩写字母,数字,其他符号。字符串由形参指定 -->
<script>
var str = prompt("请随意输⼊⼤写字母⼩写字母数字及符号等");
function analyze(aa){
var a = 0;
var A = 0;
var n = 0;
var other = 0;
for (var i=0;i<aa.length;i++){
var c = aa.substr(i,1); //aa.charAt(i);
if (c>='a' && c<='z'){
a++;
}else if(c>='A' && c<='Z'){
A++;
}else if(c>='0' && c<='9'){
n++;
}else{
other++;
}
}
document.write("⼩写字母为"+a,"⼤写字母为"+A,"数字为"+n,"其他字符为"+other);
}
</script>
</head>
<body onload="analyze(str)">
</body>
</html>
[java]
1. //⽅法⼀:在利⽤每个字符的Unicode码在a~z之间,调⽤jdk提
2. //供的String类的charAt取出字符串每⼀个字符,逐个进⾏⽐较来判定
3.
4. class FindLetter {
5.    public static void main(String[] args) {
6.        String str = "Helle, This is A test textfile.123456, tannk you!!";
7.        int upCount = 0;
8.        int lowCount = 0;
9.        int otherCount = 0;
10.
11.        for(int i = 0; i < str.length(); i++) {
12.            char c = str.charAt(i);
13.            if(c >= 'a' && c <= 'z') {
14.                lowCount++;
15.            } else if(c >= 'A' && c <= 'Z') {
16.                upCount++;
17.            } else {
18.                otherCount++;
19.            }
⽅法⼆:
js在字符串中添加字符[java]
1. //⽅法⼆:⽤jdk的Character类的isUpperCase⽅法和isLowerCase⽅法
2.
3. class FindLetter1 {
4.    public static void main(String[] args) {
5.        String str = "Helle, This is A test textfile.123456, tannk you!!";
6.        int upCount = 0;
7.        int lowCount = 0;
8.        int otherCount = 0;
9.
10.        for(int i = 0; i < str.length(); i++) {
11.            char c = str.charAt(i);
12.            if(Character.isUpperCase(c)) {
13.                upCount++;
14.            } else if(Character.isLowerCase(c)) {
15.                lowCount++;
16.            } else {
17.                otherCount++;
18.            }
19.        }
20.        System.out.println("⼤写字母个数:" + upCount);
21.        System.out.println("⼩写字母个数:" + lowCount);
22.        System.out.println("其他字母个数:" + otherCount);
23.    }
24. }
⽅法三:
[java]
1. //⽅法三:先定义两个字符串a到z和A到Z,再逐个取出str字符串中的每个字母,
2. //⽤indexOf()⽅法来判断字符是否在这这个定义的字符串中,在⼤写字母这⼀⾏,
3. //⼤写字母的计数器就加1,在⼩写字母这⾏,⼩写字母就加⼀,否则其他字母计算器
4. //加1
5.
6. class FindLetter2 {
7.    public static void main(String[] args) {
8.        String low = "abcdefghijklmnopqrstuvwxyz";
9.        String up = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
10.        int lowCount = 0;
11.        int upCount = 0;
12.        int otherCount = 0;
13.        String str = "Helle, This is A test textfile.123456, tannk you!!";
14.
15.        for(int i = 0; i < str.length(); i++) {
16.            char c = str.charAt(i);
17.            if(low.indexOf(c) != -1) {
18.                lowCount++;
19.            } else if(up.indexOf(c) != -1) {
20.                upCount++;
21.            } else {
22.                otherCount++;
23.            }
⽅法四:
[java]
1. //把str分别转化为⼤写和⼩写⼤写⽤sU ⼩写 sL
2. //然后通过与原串⽐较来统计个数
3.
4. class FindLetter3 {
5.    public static void main(String[] args) {
6.        String str = "Helle, This is A test textfile.123456, tannk you!!";
7.        String sU = UpperCase();
8.        String sL = LowerCase();
9.        int lowCount = 0;
10.        int upCount = 0;
11.        int otherCount = 0;
12.        for(int i = 0; i < str.length(); i++) {
13.            char charSTR = str.charAt(i);
14.            char charSU = sU.charAt(i);
15.            char charSL = sL.charAt(i);
16.
17.            //如果不是字母,是其他字符,则直接⽤otherCount来计数
18.            if(Character.isLetter(charSTR)) {
19.            //如果原串与转换过后的⼤写字母串相等,则原来字符为⼤写字母,
20.            //若与⼩写字母相等,则为⼩写字母
21.                if( charSTR == charSU) {
22.                    upCount++;
23.                } else if(charSTR == charSL) {
24.                    lowCount++;
25.                }
26.            } else {
27.                otherCount++;
28.            }
29.        }
30.
31.        System.out.println("⼤写字母个数:" + upCount);
32.        System.out.println("⼩写字母个数:" + lowCount);
33.        System.out.println("其他字母个数:" + otherCount);
34.    }
35. }
这四种算法都有正确的输出:
⼤写字母个数:3
⼩写字母个数:29
其他字母个数:18

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。