《浙大 Java语言程序设计编程答案.docx》由会员分享,可在线阅读,更多相关《浙大 Java语言程序设计编程答案.docx(8页珍藏版)》请在三一办公上搜索。
1、浙大 Java语言程序设计编程答案实验11 字符串处理 1. 统计单词(选做) 40031 输入一个正整数repeat (0repeat10),做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
2、,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;iline.length;i+) c=line.charAt(i); /从字符串line中取出第i个字符,放入变量c if(c=32) word=0; /当前字符是空格,表示不是单词 else if(word=0) /当前字符不是空格,同时wo
3、rd=0,表示新单词开始 word=1; count+; System.out.println( count); 2. 输出一个整数的各位数字(选做) 40032 输入一个正整数repeat (0repeat10),做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 stat
4、ic 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;is.length;i+) digit=s.charAt(i)-0; /从高位到低位依次得到一位数字 System.o
5、ut.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;ics.length;i+) System.out.print(csi+ ); /依次输出字符数组cs的各个元素 3. 求字符
6、串长度 输入一行以 # 结束的多串字符。 统计并输出每串字符的长度。 输出使用:System.out.println(len); 例:括号内是说明 输入: hello 12#abc+0# (连续输入2串字符“hello 12”和“abc+0”) 输出: 8 (“hello 12”的长度是8) 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=
7、new Scanner(System.in); str=in.next; /对x月x日前建立的练习用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; /新的字符串要开始了 else len+; /当前字符串长度加1 / 解法2: String s=str
8、.split(#); /s为字符串数组 for(i=0;is.length;i+) System.out.println(si.length); 4. 统计大写辅音字母 输入一个正整数n (0n10),做n次下列运算: 输入一行字符串,统计并输出字符串中大写辅音字母的个数 (大写辅音字母:除“A”,“E”,“I”,“O”,“U”以外的大写字母)。 例:括号内是说明 输入: 3 (输入3个字符串) HELLO IT12 uieiaba 输出: 3 (HELLO中有3个大写辅音字母) 1 0 import java.util.Scanner; public class Test60022 publ
9、ic 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=B&ch=Z)&(ch!=E&ch!=I&ch!=O&ch!=U)/判断 /大写字母BZ中去掉E,I,O,U count+;
10、 System.out.println(count); 5. 查找字符 先输入一个字符ch。然后输入一个正整数n (0n10),做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;
11、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=0;j-) if(str.charAt(j)=ch) index=j;break; if(index=0)
12、 System.out.println(index); else System.out.println(Not Found); /解法2:从当前字符串中找字符ch,找到时记住它的位置,继续找下一个, / 循环结束后,index中的值就是最后出现的位置。 index=-1; /先假设没找到 for(j=0;jstr.length;j+) if(str.charAt(j)=ch) index=j; 6. 字符串替换 输入一个正整数repeat (0repeat10),做repeat次下列运算: 输入一行字符串,生成一个新的字符串,将原字符串中的大写字母用下面列出的对应大写字母替换, 其余字符不变,
13、 输出新字符串. 原字母 对应字母 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=A&ch=Z) /对该字符进行转换 ch=(char)( Z-ch+A); str2=str2+ch; /转换后字符添加到结果中 System.out.println(str2);
链接地址:https://www.31ppt.com/p-3631411.html