c输入有空格的字符串一行字符 分别统计其中英文字母 空格 数字 和其他字符的个数

博客分类:
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
分析:翻看JAVA的API,我们可以发现有很多输入类,这里我们选取Scanner类来进行输入;至于统计字符的类,JAVA的API也给我们提供了,比如Character类,在该类中有很多方法,可以用来判断各种字符,因此我们可以用这两个类来完成这个题目。
public class TestThree {
public static void main(String[] args) {
int letterSum = 0;
int blankSum = 0;
int numberSum = 0;
int otherSum = 0;
Scanner scan = new Scanner(System.in);
System.out.println("请输入字符串:");
String str = scan.nextLine();
char[] ch = str.toCharArray();
for(int i = 0 ; i & ch. i++){
if(Character.isLetter(ch[i])){
letterSum++;
}else if(Character.isSpaceChar(ch[i])){
blankSum++;
}else if(Character.isDigit(ch[i])){
numberSum++;
otherSum++;
System.out.println("输入的字符串中共有字母:"+letterSum);
System.out.println("输入的字符串中共有空格:"+blankSum);
System.out.println("输入的字符串中共有数字:"+numberSum);
System.out.println("输入的字符串中共有其他字符:"+otherSum);
通过输入的内容进行分析,都ok。但是有一点想不到的是,我们输入的中文字符在统计的时候也给我们算作了字母里面,这让我百思不得其解。后来通过查阅源代码和相关资料才发现:这里的Letter不只是指英文字母。事实上任何语言的‘字符’都可以。
有一个例子:
for(char c='/u4E00';c&='/u9FA5';c++){
if(!Character.isLetter(c)){
System.out.println("汉字是Letter");
System.out.println("汉字不是Letter");
System.out.println(Character.isLetter('さ'));
System.out.println((int)'さ');
System.out.println(Character.isDigit('/u0660'));
System.out.println('/u0660');
可以看到汉字和日文字符都是
Letter,另外Digit也类似,不只是0-9是Digit,比如/u0660,好像是阿拉伯文,也是Digit
所以要判断英文字母或者数字还是笨一点, c&='a'&&c&='z' || c&='A'&&c&='Z'吧。
xiaoxihai123
浏览: 55036 次
来自: 深圳
i&Math.sqrt(x)应该是i&=Math. ...
等我整成功了就来回复
可行么?我试试哈
cjb 写道 很好 比较详细不客气,对你们有用 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
import java.util.S
public class Java71 {
& & & & public static void main(String[] args) { & & & & // TODO code application logic here & & & & Scanner s = new Scanner(System.in); & & & & System.out.println("请输入字符串:"); & & & & String a = s.nextLine(); & & & & int abccount = 0; & & & & int numcount = 0; & & & & int spacecount = 0; & & & & int othercount = 0; & & & & char[] b = a.toCharArray(); & & & & for(int i = 0; i & b. i++){ & & & & & & if(b[i]&='a'&&b[i]&='z'||b[i]&='A'&&b[i]&='Z'){ & & & & & & & & abccount++; & & & & & & }else if(b[i]&='0'&&b[i]&='9'){ & & & & & & & & numcount++; & & & & & & }else if(b[i]==' '){ & & & & & & & & spacecount++; & & & & & & }else{ & & & & & & & & othercount++; & & & & & & } & & & & } & & & & System.out.println("字符串中含有的英文字母数为:" + abccount); & & & & System.out.println("字符串中含有的数字数为:" + numcount); & & & & System.out.println("字符串中含有的空格数为:" + spacecount); & & & & System.out.println("字符串中含有的其他字符为:" + othercount); & & } }
阅读(6932)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'Java 71:(第二种方法)输入一行字符,分别统计出其中的英文字母,空格,数字和其他字符的个数',
blogAbstract:'
package java71; import java.util.S
public class Java71 {
& & & & public static void main(String[] args) { & & & & // TODO code application logic here & & & & Scanner s = new Scanner(System.in); & & & & System.out.println(\"请输入字符串:\"); & & & & String a = s.nextLine(); & & & & int abccount = 0;',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:4,
publishTime:1,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}扫二维码下载作业帮
2亿+学生的选择
下载作业帮安装包
扫二维码下载作业帮
2亿+学生的选择
输入一行字符,分别统计出其中大写字母,小写字母和数字的个数 (用while 或do while)
怀念狗dog70
扫二维码下载作业帮
2亿+学生的选择
为您推荐:
其他类似问题
扫描下载二维码输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢用C语言编写一段程序,输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数.
用C语言编写一段程序,输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数.我自己编写了一个,可是出不来,还请大哥哥大姐姐帮帮我,
非要限制输入的大小么?过会儿给你发个 #include #include void main(){char m_int digit=0,space=0,others=0,uppercase=0,lowercase=0;printf("Please input string:");while ((m_input=getchar())!='\n'){if (m_input>='a'&&m_input='A'&&m_input'0'&&m_input
与《用C语言编写一段程序,输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数.》相关的作业问题
#include int main(){int i=0,space=0,num=0,n=0,ch=0;char s[20];printf("请输入一串字符 ");gets(s);while(s[i] != '\0'){if(s[i]==' ')space++;else if(s[i]='0')num++;else if
for (; c = getchar() != '\n';) 这个里面是先执行 getchar() != '\n 在执行赋值给c,如果为真,则c非0,否则c= 0; 应该是for (; (c = getchar()) != '\n';)才对
#include #define N 100void main(){void count_D_E(char a[]);char a[N];printf("Please input a string:\n");gets(a);count_D_E(a);}void count_D_E(char *a){int i=0;in
&& 方案一:CLEARACCEPT "请输入字串:" TO ab=0c=0d=0e=0f=0n = LEN(a)FOR i = 1 TO n\x05x=ASC(SUBSTR(a,i,1))\x05DO CASE\x05\x05CASE (x >= 65 AND x == 97 AND x =
#include "stdio.h"int main(){int Length[3];for (int i=0;i
你是想统计 单词?还是字符串 不明白.如果是统计单词的话我回避一下 再问: 字符串的吧,简单一点就行,谢谢 再答: //我刚才有点事,刚回就赶紧给你写了个小demo。并做了一点小扩充。希望能满足你的需求。如果可以,希望你采纳,给个分。有事再追问。。。时间有点紧迫,有关判断的地方还不够精简,希望各位指正,拍砖。 publ
程序:#include&&stdio.h&#&define&m&3#&define&n&2void&main(){&&&&int&i,j,a[m],b[n];&&nbs
#include double H(int n,double x){if(x>1){if(n == 0)return 1.0; // H0(x) = 1;if(n == 1)return 2.0*x; //H1(x) = 2x;//直接输出 Hn(x) = 2xHn-1(x) - 2(n-1)Hn-2(x)return
方法一:#include #includeint main(){for(i=100;i 再问: 是C,不是C++。是语言都能,但题目是C 还有吗? 虽然可以仿照C++,但还是不要那么麻烦。 再答: 把头文件加上 把cout改成printf("%
//约定1为真 0为假 //p->q∧r 等价于 ~pV(q∧r) #includeint main (void){ int p , q, p = q = 1; printf("%4s%4s%4s%10s\n", "p", "q", "r", "p->q∧r"); while(1) { for( r = 1;q
/*链表实现集合运算*/#includetypedef int ElemTstruct SNode {ElemTSNode*};void InitSet(SNode*& HT){HT=NULL;}void ClearSet(SNode*& HT){SNode *p=HT,
#include main(){float a,b,c;scanf("%f%f",&a,&b);c=a+b;printf("%.2f\n",c);}
input "请输入一个正整数:" to xs=0n=0i=1do while i
给你个思路吧.设定一个字符数组,或者直接用string对象,从键盘接收一个字符串到该字符数组或字符串对象中.然后设一个变量i用以遍历字符串,如果遇到第i位是空格或者标点,则空格或标点数加1,并检查第i-1位是否为字母,如果i-1位是字母,说明刚刚遍历过去的是一个单词,则单词数加1,否则(i-1位不是字母)就继续往下走.
如果是VB的话,小意思,我给你编辑,只要求选择我.
var x:n,i,a1,b1,c1:a,b,c,yingwen,shuzi:beginyingwen:=['a'..'z'];shuzi:=['0'..'9'];readln(x);n:=length(x);for i:=1 to n doif x[i] in y
语法错误:printf("其中大写字母%d个,小写字母%d个,数字%d个,其他字符%d个\n",dx,xx,shuzi,qita);dx后面的逗号不是英文的.算法也有错误:你判断的时候if(all[i]>'a'&&all[i]'A'&&all[i]都改成>=,='a'&&all[i]='A'&&all[i]='A'&&
#include&&iostream&using&namespace&int&main(){&&&&&char&c;&&&&&int&el=
开始----输入-----提取第一个字符(计算输入的字符长度)-----比较是什么(如果是大写字母,a计数器+1;如果是小写字母,b计数器+1,.) -------提取第二个字符-----比较是什么(如果是大写字母,a计数器+1;如果是小写字母,b计数器+1,.)-----提取第三个字符-----比较是什么(如果是大写

我要回帖

更多关于 c 字符串输入空格 的文章

 

随机推荐