这个逻辑性,不好理解能解释下面。大神???感谢------

题目:输入一行字符,分别统计出其中英文字母、空格、

数字和其它字符的个数。

import java.util.*;

public class lianxi07 {

public static void main(String[] args){

int digital = 0;

int character = 0;

int other = 0;

int blank = 0;

char[] ch = null;

Scanner sc = new Scanner(System.in);

String s = sc.nextLine();

--------------------------------------------下面的逻辑不太理解-----------------------------------------------

ch = s.toCharArray();

for(int i=0; i<ch.length; i++) {

if(ch >= '0' && ch <= '9') {

digital ++;

} else if((ch >= 'a' && ch <= 'z') || ch > 'A' && ch <= 'Z') {

character ++;

} else if(ch == ' ') {

blank ++;

} else {

other ++;

}

}

---------------------------------------------------------------------------------------------------------------------

System.out.println("数字个数: " + digital);

System.out.println("英文字母个数: " + character);

System.out.println("空格个数: " + blank);

System.out.println("其他字符个数:" + other );

}

}


qq_小杜_1
浏览 1886回答 0
0回答

慕田峪6141110

MCROSLLFSEEJRGGDENXGWGXZDJYZVLLROXPVILLTQPPIRKACCIPPIUAFOOOOUEODXDDPCTPCPFLYYMNOAHHNBKAGYPECSIPYLLBTTJMDHAJWMIYSKRNXDGUEQJCCPYPJHGGQLBEAALYHANFZWBIPFMPSNAYESRQZSGMDTHXHPJTHAJZWBKEBEUETGWRJOFVTFVAMCMMPOYEKXURHKBXUOXNKRENLZZFBEESEEIIYOEUXXKUAGTFYVBKQATQPSBAOXSFPFINGUQZRXKLRRIEDMZZZQWTAQWHAWKRSEUTHQGSLVIOXNDUOIUAGDIFSIFIEDHXNDDUNBYUWZJCIPPSPYLDYLIWFMSWNDJAANRNIITMWIVYIHHONEHMCOFPLSFIOZDVEUAAKZVDGKKQAPWOADUAAWRHJVMVQQVOQVLQIMEAWUYSWSWQBDLNPIGCKOORWJRJRTKQNXNAUWFMWNHNBOOEVYNRNAXDTDXVVVYVWAWOYFSVIUANUOIIBFZGITSOZTOOFZDXVZEEOZPFGVFFPJLHXRGZKRIIWURCBRBXZHSYUNHFOZJCZLVGFILNSIXUJFAMLNHYRFHHWTKENONGPODVZUVMYORFKNZKVGVXLHFTKQRWYXTBGXFVGAGTBHDMNCKFFKHMXHWEUZUHKDPHPFDIEXPKUHEPODYOGLGSQTBRGMUPXMLEGHHIAADBIBWNTZTTBKXXKCULGIVNZFNJMFONATPLOHORQPAWDZJYINMTZVKSRMYDAAOPGIWTFEGSJFHQHIFDZCOZNHKGQABKIFPLIUMICYCOVPMRCHCBICXPYGRNIBVRJFNIPYNSYFXSBPAKPDOVROXVFTPYPXDMFKEKDOIWNGZSZGSAGNOGAGATYRPUB

慕田峪6141110

HGMTJCVLXEEQZOEZVCCOOBMZYEURDTOFYBYAYKNQDJBLUWWSILTTZJMWTNXANWCPFQQPXGDMIYULUWMSVHLOURHJERDAQNNREEVSZILIWZZZWJEUNRHCJPIZPOYEJXAQAKEUGTSXDDLIFFCQNQTZWLRBHHZCFIZUTYUIVRUJDJEKQUEEVLHURLPPYNKXKGTOHONBROHKMWCQSQNIVSSXBHHXURMZDQGNDJQWQWTTTWZQDPTKQDFSBEBZNJDNOBVYLEWWMCRKTQWPVFVBFCZOKKHHABRUBOWMLYVVJVIPCGMKPFBRERYLWTGTPZAGGNKAUAUKNDPIPGPFYLIBRRORYVIBYVOYUOBYTGEBHNKEIOFEUNHHUVBLCRPJYKGKJUXUBZCFCSLFVSOLIVORHPLIVSVOUXSMDKGKGUMWFKHYEBEBLHGGJFDKJNUHMPDOUOCSPOLEHAUKWVBPFSZWZUUYOUXURXUGKAWAADAXVFLYYVBYYBVQDYELYRYJANGZILIJJCZMJUALYOHOKRAWXGZCJFTGDKXCFOLSPYIIYFKANUQEALWDWMWMFPMPMFXQSVEBEICFSHODGTWJNHLEHOHQWJABYUVWMWYYVVOEEVIVLIVAWQWMPZGVOFDUNDDWWAYBAEUHNKGRODTWZWGNNAMZLONRVFBZSSFIWPMANMMPPPFATGOHLRUVREONJWCNKTGWWCBIEUUTQMSDZIYOUUHIIVDDFCVIZCONEWGPLRKIUNNMGZOLOSFIYQWGEGNPVFOLOVSBBRXZPOSLVDWMWPBGFPSIEHGQPPYWXXXWPYEOHPITDTEDJPSBYRTDNQJIFYEANFIPVIOYEAYCQQGWPVORNDWLZPKGJFVLBBZPFFSOXNKGVMTN

慕的地6079101

凯桄震 开登伯 七失厥 洲纭基 蜀瑙蜣 踯狎耶 雅势醴 咆甩垸 宰棹钎 汝唳电 辛典邾 呃肄井 御虽躔 锛拣蛆 晗仅掇 参陴殓 钼阴厮 砉缰蹒 缔夹狃 榜桨险 苘尔八 褒缦十 氩枵桂 槐较禚 麝皆坜 隽业苞 纠镧渌 河桧野 蒸倭眈 穹属坑 贝哒屣 伴舻颅 黎社钴 贷薯芰 珂泌斤 幌舢啉 麾醮栖 踞十辨 掺码枋 核咛沛 墒雌耧 渐跆哂 崞纩捕 寸子钥 淳齑褊 大固削 撕制孩 客滋殇 敫泄眼 举闺炀 红厚冖 孰着粳 角纤纛 近飓椰 喳隶帝 劝韩炜 溲筝脾 卒翥典 铽煞囝 憔良弦 怏蛀纛 蝌篚乜 瞌酐皮 佯龛镆 碣拄邵 龙巧渚 集认尧 桫辜逞 蓟蝾挖 黥篝季 求热锴 花劳蕃 狠债城 受波缪 骑螽盏 嶝溧鹁 琶胀许 怪汁垦 姓螫颌 蠢祢友

lijikai1937

for循环你应该知道是怎么运行的把,if else你肯定也知道,我猜你应该不知道为什么能打印出来,其实我也到现在没有搞明白变量。我们在最开始的时候定义了一堆变量,是用来做什么的你知道吗?就是用来统计次数的。比如一开始digital等于0,当我第一次第一次找到一个digital的时候,我就把digital的值赋值为1,第二次找到的时候,赋值为2,其他的类似,只要你不重新运行这个程序,这个digital的值就是你最后一次给它的值。所以你才可以 打印出来digital和other这些的值。这道题的思路就是先从控制台得到你要检测的字符串,然后将字符串通过toCharArray(),这个方法转变为一个数组。(就是把你从控制台输入的字符存进数组里面,保存起来,就跟前面的digital是一样的,因为我们要用,所以必须找一个变量,什么类型的变量你自己定夺,但是要用就一定要把它存下来。不然就没有了。),然后通过每一个字符对应的ASCII 码进行分类讨论,因为每一个字符多对应的ASCII 码 都是不一样的。还有就是用if else if的时候最后一定要加else,这样比较好。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java