黑马程序员技术交流社区
标题:
关于统计大写字母和小写字母的问题?
[打印本页]
作者:
simonqian
时间:
2013-5-12 10:48
标题:
关于统计大写字母和小写字母的问题?
本帖最后由 simonqian 于 2013-5-13 08:33 编辑
从键盘输入一行字符,分别统计其中大写字母和小写字母的个数?
作者:
任江峰
时间:
2013-5-12 10:53
本帖最后由 任江峰 于 2013-5-12 11:19 编辑
把读入的字符串转换为字节数组,然后再逐个判断每个字节所在的区间,就可以了。
希望能帮到你。
import java.io.*;
class UperLowerTest
{
public static void main(String[] args) throws IOException
{
// 创建输入流对象
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// 读取一行字符串
String str = reader.readLine();
//将读入的字符串转换为字节数组
byte[] b = str.getBytes();
//定义两个变量用于大写和小写计数
int uperCount=0;
int lowerCount=0;
for(int i=0; i<b.length; i++)
{
if(b[i]>='A' && b[i] <='Z')
{
//大写计数+1
uperCount++;
}
if(b[i]>='a' && b[i] <='z')
{
//小写计数+1
lowerCount++;
}
}
//输出结果
System.out.println("大写字母的个数是:"+uperCount);
System.out.println("小写字母的个数是:"+lowerCount);
}
}
复制代码
作者:
hou604720966
时间:
2013-5-12 10:56
通过ASCII码统计,在此这给你思路;
大写A到Z 对应的ASCII码为65到90
小写a到z 对应的ASCII码为97到122
作者:
刘兆华
时间:
2013-5-12 11:05
String 类下没有这种情况的方法处理。唯一一种能区分大小写的方法也就只能用ASCII表 只有表中的的大小写字母能区分开,用条件式判断字母处于哪个范围。正如楼上说的 A到Z 的范围对应一个数字范围。 a-z又是一个范围。判断字母处于这两个范围中的哪个 就行。
作者:
白磊
时间:
2013-5-12 11:24
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in); //从键盘输入
String str=sc.next();
int da = 0;
int xiao = 0;
for(int i=0;i<str.length();i++){
if('a'<str.charAt(i)&&str.charAt(i)<'z'){ //判断字母的小写
xiao++;
}
else if('A'<str.charAt(i)&&str.charAt(i)<'Z'){ //判断字母的大写
da++;
}
}
System.out.println("大写字母数为:"+da+".....");
System.out.println("小写字母数为:"+xiao);
}
}
这个是我写的,你可以看看
作者:
仲伟
时间:
2013-5-12 12:13
isUpperCase(char ch)
isLowerCase(int codePoint)
根据API文档中输入,一个字符,用chatacter做半段就行吗
作者:
chouwayメ
时间:
2013-5-12 13:51
本帖最后由 chouwayメ 于 2013-5-12 13:55 编辑
思路是:1.复制一个新的str并转成大写;
2.把两个str都变成字符数组;
3.比较每个字符,相同的countUp++,不同的countLow++;
public class countCaseTest
{
public static void main(String[]args)
{
String a="abaEdFSds";
count(a);
}
static void count(String a)
{
int countUp=0,countLow=0;
String b=a.substring(0,a.length());
b=b.toUpperCase(); //复制一个新的str并转成大写
char[] b1=b.toCharArray();
char[] a1=a.toCharArray(); //把两个str都变成字符数组
for(int i=0;i<a1.length;i++)
{
if(a1[i]==b1[i])countUp++;
else countLow++;
} //比较每个字符,相同的countUp++,不同的countLow++
System.out.println(a+" UP:"+countUp+" LOW:"+countLow);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2