第五章编程题1.编写一个程序,实现字符串大小写的转换并倒序输出。要求如下:(1)使用for循环将字符串“HelloWorld”从最后一个字符开始遍历。(2)遍历的当前字符如果是大写字符,就使用toLowerCase()方法将其转换为小写字符,反之则使用toUpperCase()方法将其转换为大写字符。(3)定义一个StringBuffer对象,调用append()方法依次添加遍历的字符,最后调用StringBuffer对象的toString()方法,并将得到的结果输出。【参考答案】publicclassChap5e{publicstaticvoidmain(String[]args){Stringstr=Hell5oWorld;char[]ch=str.toCharArray();StringBuffers=newStringBuffer();for(inti=ch.length-1;i=0;i--){if(ch[i]='A'&&ch[i]='Z')s.append(String.valueOf(ch[i]).toLowerCase());elseif(ch[i]='a'&&ch[i]='z')s.append(String.valueOf(ch[i]).toUpperCase());elses.append(String.valueOf(ch[i]));}System.out.print(s.toString());}}2.利用Random类来产生5个20`30之间的随机整数并输出。【参考答案】importjava.util.Random;publicclassChap5e{publicstaticvoidmain(String[]args){Randomr=newRandom();for(inti=0;i5;i++){System.out.println(r.nextInt(30-20+1)+20);}}}3.编程.已知字符串:”thisisatestofjava”.按要求执行以下操作:(1)统计该字符串中字母s出现的次数(2)取出子字符串”test”(3)将本字符串复制到一个字符数组Char[]str中.(4)将字符串中每个单词的第一个字母变成大写,输出到控制台。(5)用两种方式实现该字符串的倒叙输出。(用StringBuffer和for循环方式分别实现)(6)将本字符串转换成一个字符串数组,要求每个数组元素都是一个有意义的英文单词,并输出到控制台【参考答案】publicclassChap53e{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub//(1)Stringstring=thisisatestofjava;char[]s=string.toCharArray();intcount=0;for(inti=0;is.length;i++)if(s[i]=='s')count++;System.out.println(s出现了+count+次);//(2)Stringstr1;str1=string.substring(string.indexOf('t',1),string.lastIndexOf('t')+1);System.out.println(子字符串为+str1);//(3)char[]str=string.toCharArray();String[]str2=string.split();//(4)for(inti=0;istr2.length;i++){//方法一str2[i]=String.valueOf(str2[i].charAt(0)).toUpperCase()+str2[i].substring(1);//方法二str2[i]=str2[i].replaceFirst(String.valueOf(str2[i].charAt(0)),String.valueOf(str2[i].charAt(0)).toUpperCase());System.out.print(str2[i]+);}//(5)StringBuffersbf=newStringBuffer(thisisatestofjava);sbf.reverse();System.out.println(sbf);for(inti=string.length()-1;i=0;i--)System.out.print(string.charAt(i));//(6)String[]strs3=string.split();System.out.println(Arrays.toString(strs3));}}4.Stringstr=svd9876fsb543fdg210;将字符串中所有偶数转为int[]数组,再对数组冒泡排序,最后使用Arrays输出数组。【参考答案一】importjava.lang.reflect.Array;importjava.util.Arrays;publicclassChap54e{publicstaticvoidmain(String[]args){Stringstr=svd9876fsb543fdg210;StringBuffersf=newStringBuffer();inta,i,j;for(i=0;istr.length();i++){if(str.charAt(i)='0'&&str.charAt(i)='9'){a=Integer.valueOf(String.valueOf(str.charAt(i)));//或a=Integer.parseInt(String.valueOf(str.charAt(i)));if(a%2==0){sf.append(a);}}}int[]arr=newint[sf.length()];for(i=0;isf.length();i++){arr[i]=Integer.valueOf(String.valueOf(sf.charAt(i)));}for(intk:arr)System.out.println(k);System.out.println();for(i=0;isf.length();i++)for(j=0;jsf.length()-i-1;j++){inttemp;if(arr[j]arr[j+1]){temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;//TODOAuto-generatedmethodstub}}System.out.println(Arrays.toString(arr));}}【参考答案二】importjava.util.Arrays;publicclassChap54e{publicstaticvoidmain(String[]args){//1.Stringstr=svd9876fsb543fdg210;将字符串中所有偶数转为int[]数组,//再对数组冒泡排序,最后使用Arrays输出数组。Stringstr=svd9876fsb543fdg210;StringBuildersb=newStringBuilder();//1.遍历字符串,获取每个字符for(inti=0;istr.length();i++){charcharAt=str.charAt(i);//2.判断当前字符是否为数字,if(Character.isDigit(charAt)){//如果是数字//3.再判断该字符是否为偶数如果是偶数//char---String---intintparseInt=Integer.parseInt(String.valueOf(charAt));if(parseInt%2==0){//保存起来sb.append(parseInt);}}}System.out.println(sb:+sb);//4.根据保存偶数数字的个数来创建int[]int[]arr=newint[sb.length()];for(inti=0;isb.length();i++){charcharAt=sb.charAt(i);//获取sb中下表为i的字符//将该字符转为int类型intparseInt=Integer.parseInt(String.valueOf(charAt));//5.将存储的数字赋值给int[]//将该int类型的值赋值给数组下表为i的元素arr[i]=parseInt;}System.out.println(Arrays.toString(arr));//6.冒泡maoPao(arr);//7.输出System.out.println(Arrays.toString(arr));}/***对数组冒泡排序**@paramarr*被排序的数组*/publicstaticvoidmaoPao(int[]arr){for(inti=0;iarr.length-1;i++){for(intj=0;jarr.length-1-i;j++){if(arr[j]arr[j+1]){inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}}5.利用Math类获取5个随机整数范围在(15,30),不能重复,放在数组中,冒泡排序后遍历输出。【参考答案】publicclassChap55e{publicstaticvoidmain(String[]args){int[]arr=newint[5];inta;for(inti=0;i5;i++){a=(int)(Math.random()*(30-15))+15;//TODOAuto-generatedmethodstubfor(intj=0;j5;j++)if(a==arr[j])i--;else{arr[i]=a;break;}}for(intk:arr)System.out.print(k+);System.out.println();for(inti=0;i4;i++)for(intj=0;j4-i;j++){inttemp;if(arr[j]arr[j+1]){temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}for(intk:arr)System.out.print(k+);}}6.如下字符串:01#张三#20*02#李四#18*03#王五#22*04#赵六#20*05#田七#21分割出每个人的信息,样式如下:01张三2002李四18…..创建Student类,属性:学号姓名年龄(1)将这些Student对象放进数组中(2)查询里面有没有叫田七的学生如果存在则打印学生的具体信息(封装成方法,键盘输入姓名)(3)计算所有学生的平均年龄,最大年龄,最小年龄(4)如果存在名字叫张三的将名字改为张兵【参考答案】importjava.util.*;classStudent{privateStringxueHao;privateStringname;privateintage;publicStringgetXueHao(){returnxueHao;}publicvoidsetXueHao(StringxueHao){this.xueHao=xueHao;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}publicStudent(){}publicStudent(StringxueHao,Stringname,intage){this.xueHao=xueHao;this.name=name