实验11字符串处理1.统计单词(选做)40031输入一个正整数repeat(0repeat10),做repeat次下列运算:输入一行字符,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个。例:括号内是说明输入2(repeat=2)Reoldbuildingroom123Programmingisfun输出43importjava.util.Scanner;publicclassTest40031{publicstaticvoidmain(String[]args){intri,repeat,count,word,i;Stringline;charc;Scannerin=newScanner(System.in);repeat=(in.nextLine()).charAt(0)-'0';for(ri=1;ri=repeat;ri++){line=in.nextLine();/*---------*/count=word=0;for(i=0;iline.length();i++){c=line.charAt(i);//从字符串line中取出第i个字符,放入变量cif(c==32)word=0;//当前字符是空格,表示不是单词elseif(word==0){//当前字符不是空格,同时word=0,表示新单词开始word=1;count++;}}System.out.println(count);}}}2.输出一个整数的各位数字(选做)40032输入一个正整数repeat(0repeat10),做repeat次下列运算:输入一个整数,从高位开始逐位输出它的各位数字。输出语句:System.out.print(digit+);例:括号内是说明输入3(repeat=3)123456-6008输出1234566008importjava.util.Scanner;publicclassTest40032{publicstaticvoidmain(String[]args){intri,repeat;intdigit;longn,temp,pow;Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri=repeat;ri++){n=in.nextLong();/*---------*/n=Math.abs(n);Strings=String.valueOf(n);//把整数n转换成字符串for(inti=0;is.length();i++){digit=s.charAt(i)-'0';//从高位到低位依次得到一位数字System.out.print(digit+);//输出该位数字,再加一个空格}System.out.println();}}}注意:若语句digit=s.charAt(i)-'0';改为digit=s.charAt(i);则变量digit的值为该字符的unicode编码。//解法2:n=Math.abs(n);char[]cs=String.valueOf(n).toCharArray();//把整数n转换成字符串后存入字符数组cs,cs的元素就是n的每位数字for(inti=0;ics.length;i++)System.out.print(cs[i]+);//依次输出字符数组cs的各个元素3.求字符串长度输入一行以#结束的多串字符(不包含空格,各串之间也用#进行间隔)。统计并输出每串字符的长度。输出使用:System.out.println(len);例:括号内是说明输入:hello12#abc+0#(连续输入2串字符“hello12”和“abc+0”)输出:8(“hello12”的长度是8)5(“abc+0”的长度是5)importjava.util.Scanner;publicclassTest60021{publicstaticvoidmain(String[]args){intlen,count,i,k;//变量count,k未用到charch;Stringstr;Scannerin=newScanner(System.in);str=in.next();//对5月7日前建立的练习用in.nextLine();/*---------*/len=0;//保存当前字符串的长度//count=0;//保存字符串个数,可以不写for(i=0;istr.length();i++){ch=str.charAt(i);//从字符串中逐个取出字符if(ch=='#'){//当前字符串结束了System.out.println(len);//输出长度//count++;//字符串增加1个,可以不写len=0;//新的字符串要开始了}elselen++;//当前字符串长度加1}}}//解法2:String[]s=str.split(#);//s为字符串数组for(i=0;is.length;i++)System.out.println(s[i].length());4.统计大写辅音字母输入一个正整数n(0n10),做n次下列运算:输入一行字符串,统计并输出字符串中大写辅音字母的个数(大写辅音字母:除“A”,“E”,“I”,“O”,“U”以外的大写字母)。例:括号内是说明输入:3(输入3个字符串)HELLOIT12uieiaba输出:3(HELLO中有3个大写辅音字母)1(IT12中有1个大写辅音字母)0(uieiaba中没有大写辅音字母)importjava.util.Scanner;publicclassTest60022{publicstaticvoidmain(String[]args){intcount,i,j,n;charch;Stringstr;Scannerin=newScanner(System.in);n=(in.nextLine()).charAt(0)-'0';//读取输入的第1行的第1个字符,转换成数值for(i=1;i=n;i++){str=in.nextLine();//读取输入的下一行/*---------*/count=0;//保存大写辅音字母的个数for(j=0;jstr.length();j++){ch=str.charAt(j);//从字符串中逐个取出字符if((ch='B'&&ch='Z')&&(ch!='E'&&ch!='I'&&ch!='O'&&ch!='U'))//判断//大写字母'B'~'Z'中去掉'E','I','O','U'count++;}System.out.println(count);}}}5.查找字符先输入一个字符ch。然后输入一个正整数n(0n10),做n次下列运算:输入一行字符串,在字符串中查找该字符(ch),如果找到,则输出该字符在字符串中最后出现的位置(从0开始);否则输出“NotFound”。例:括号内是说明输入:m(输入一个字符)3(要输入3行字符串)moonprogramming1234输出:0(m在moon中最后出现位置是0)7(m在programming中最后出现位置是7)NotFound(1234中没有m)importjava.util.Scanner;publicclassTest60023{publicstaticvoidmain(String[]args){intindex,i,n,j;charch;Stringstr;Scannerin=newScanner(System.in);ch=(in.nextLine()).charAt(0);//读取输入的第1行的第1个字符,就是要查找的字符n=(in.nextLine()).charAt(0)-'0';//读取输入的第2行的第1个字符,转换成数值for(i=1;i=n;i++){str=in.nextLine();//读取输入的下一行/*---------*///从字符串末尾开始找字符ch,第1次找到时记住它的位置,终止循环。index=-1;//先假设没找到for(j=str.length()-1;j=0;j--){if(str.charAt(j)==ch){index=j;break;}}if(index=0)System.out.println(index);elseSystem.out.println(NotFound);}}}//解法2:从当前字符串中找字符ch,找到时记住它的位置,继续找下一个,//循环结束后,index中的值就是最后出现的位置。index=-1;//先假设没找到for(j=0;jstr.length();j++)if(str.charAt(j)==ch)index=j;6.字符串替换输入一个正整数repeat(0repeat10),做repeat次下列运算:输入一行字符串,生成一个新的字符串,将原字符串中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出新字符串.原字母对应字母A──→ZB──→YC──→XD──→W……X──→CY──→BZ──→A例:括号内是说明输入:3(输入3行字符串)AflagofUSAIT12oueiaba输出:ZflagofFHZRG12oueiabaimportjava.util.Scanner;publicclassTest60024{publicstaticvoidmain(String[]args){intri,repeat,i;charch;Stringstr1,str2;Scannerin=newScanner(System.in);repeat=(in.nextLine()).charAt(0)-'0';for(ri=1;ri=repeat;ri++){str1=in.nextLine();/*---------*/str2=;//保存转换后的新字符串for(i=0;istr1.length();i++){ch=str1.charAt(i);//从字符串中逐个取出字符if((ch='A'&&ch='Z'))//对该字符进行转换ch=(char)('Z'-ch+'A');str2=str2+ch;//转换后字符添加到结果中}System.out.println(str2);}}}