收藏 分销(赏)

浙大-Java语言程序的设计编程答案10.doc

上传人:二*** 文档编号:4576705 上传时间:2024-09-30 格式:DOC 页数:7 大小:48KB 下载积分:5 金币
下载 相关 举报
浙大-Java语言程序的设计编程答案10.doc_第1页
第1页 / 共7页
本文档共7页,全文阅读请下载到手机保存,查看更方便
资源描述
实验11 字符串处理 1. 统计单词(选做) 40031 输入一个正整数repeat (0<repeat<10),做repeat次以下运算: 输入一行字符,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个。 例:括号是说明 输入 2 (repeat=2) Reold building room 123 Programming is fun 输出 4 3 import java.util.Scanner; public class Test40031{ public static void main(String []args ){ int ri, repeat,count, word,i; String line; char c; Scanner in=new Scanner(System.in); repeat=(in.nextLine()).charAt(0)-'0'; for(ri=1; ri<=repeat; ri++){ line=in.nextLine(); /*---------*/ count=word=0; for(i=0;i<line.length();i++){ c=line.charAt(i); //从字符串line中取出第i个字符,放入变量c if(c==32) word=0; //当前字符是空格,表示不是单词 elseif(word==0){ //当前字符不是空格,同时word=0,表示新单词开始 word=1; count++; } } System.out.println( count); } } } 2. 输出一个整数的各位数字(选做) 40032 输入一个正整数repeat (0<repeat<10),做repeat次以下运算: 输入一个整数,从高位开始逐位输出它的各位数字。 输出语句:System.out.print(digit+" "); 例:括号是说明 输入 3 (repeat=3) 123456 -600 8 输出 1 2 3 4 5 6 6 0 0 8 import java.util.Scanner; public class Test40032{ public static void main(String []args ){ int ri, repeat; int digit; long n, temp, pow; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri<=repeat; ri++){ n=in.nextLong(); /*---------*/ n=Math.abs(n); String s=String.valueOf(n); //把整数n转换成字符串 for(int i=0;i<s.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(int i=0;i<cs.length;i++) System.out.print(cs[i]+" "); //依次输出字符数组cs的各个元素 3. 求字符串长度 输入一行以 # 完毕的多串字符〔不包含空格,各串之间也用 # 进展间隔〕。 统计并输出每串字符的长度。 输出使用:System.out.println(len); 例:括号是说明 输入: hello 12#abc+0# (连续输入2串字符“hello 12”和“abc+0”) 输出: 8 (“hello 12”的长度是8) 5 〔“abc+0”的长度是5〕 import java.util.Scanner; public class Test60021{ public static void main(String []args){ int len,count,i,k;//变量count,k未用到 char ch; String str; Scanner in=new Scanner(System.in); str=in.next();//对5月7日前建立的练习用in.nextLine(); /*---------*/ len=0; //保存当前字符串的长度 // count=0; //保存字符串个数,可以不写 for(i=0;i<str.length();i++) { ch=str.charAt(i); //从字符串中逐个取出字符 if(ch=='#'){ //当前字符串完毕了 System.out.println(len);//输出长度 // count++; //字符串增加1个,可以不写 len=0; //新的字符串要开始了 } else len++; //当前字符串长度加1 } } } //解法2: String[] s=str.split("#"); //s为字符串数组 for(i=0;i<s.length;i++) System.out.println(s[i].length()); 4. 统计大写辅音字母 输入一个正整数n (0<n<10),做n次以下运算: 输入一行字符串,统计并输出字符串写辅音字母的个数 (大写辅音字母:除“A〞,“E〞,“I〞,“O〞,“U〞以外的大写字母)。 例:括号是说明 输入: 3 (输入3个字符串) HELLO IT12 uieiaba 输出: 3 ("HELLO"中有3个大写辅音字母) 1 〔"IT12"中有1个大写辅音字母〕 0 〔"uieiaba"中没有大写辅音字母〕 import java.util.Scanner; public class Test60022{ public static void main(String []args){ int count,i,j,n; char ch; String str; Scanner in=new Scanner(System.in); n=(in.nextLine()).charAt(0)-'0';//读取输入的第1行的第1个字符,转换成数值 for(i=1;i<=n;i++){ str=in.nextLine();//读取输入的下一行 /*---------*/ count=0; //保存大写辅音字母的个数 for(j=0;j<str.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 (0<n<10),做n次以下运算: 输入一行字符串,在字符串中查找该字符(ch),如果找到,那么输出该字符在字符串中最后出现的位置(从0开始);否那么输出“Not Found〞。 例:括号是说明 输入: m (输入一个字符) 3 (要输入3行字符串) moon programming 1234 输出: 0 (m在"moon"中最后出现位置是0) 7 (m在"programming"中最后出现位置是7) Not Found ("1234"中没有m) import java.util.Scanner; public class Test60023{ public static void main(String []args){ int index,i,n,j; char ch; String str; Scanner in=new Scanner(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); else System.out.println("Not Found"); } } } //解法2:从当前字符串中找字符ch,找到时记住它的位置,继续找下一个, // 循环完毕后,index中的值就是最后出现的位置。 index=-1; //先假设没找到 for(j=0;j<str.length();j++) if(str.charAt(j)==ch) index=j; 6. 字符串替换 输入一个正整数repeat (0<repeat<10),做repeat次以下运算: 输入一行字符串,生成一个新的字符串,将原字符串中的大写字母用下面列出的对应大写字母替换, 其余字符不变, 输出新字符串. 原字母 对应字母 A ──→ Z B ──→ Y C ──→ X D ──→ W …… X ──→ C Y ──→ B Z ──→ A 例:括号是说明 输入: 3 (输入3行字符串) A flag of USA IT12 oueiaba 输出: Z flag of FHZ RG12 oueiaba import java.util.Scanner; public class Test60024{ public static void main(String []args){ int ri, repeat, i; char ch; String str1,str2; Scanner in=new Scanner(System.in); repeat=(in.nextLine()).charAt(0)-'0'; for(ri=1; ri<=repeat; ri++){ str1=in.nextLine(); /*---------*/ str2=""; //保存转换后的新字符串 for(i=0;i<str1.length();i++) { ch=str1.charAt(i); //从字符串中逐个取出字符 if((ch>='A'&&ch<='Z')) //对该字符进展转换 ch=(char)( 'Z'-ch+'A'); str2=str2+ch; //转换后字符添加到结果中 } System.out.println(str2); } } } 7 / 7
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服