JAVA第07周实验-字符串-正规式_第1页
JAVA第07周实验-字符串-正规式_第2页
JAVA第07周实验-字符串-正规式_第3页
JAVA第07周实验-字符串-正规式_第4页
JAVA第07周实验-字符串-正规式_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验内容第七周实验字符串处理成绩姓名陈佳宇学号20112730班级软件二班专业软件工程日期2014年4月9日【实验目的】--字符串处理掌握String、StringBUffer字符串类掌握常用的字符串处理类掌握利用正规式检索字符串【实验内容】1、编辑、编译、运行下面java程序publicclassStringTest{publicstaticvoidmain(String[]args){StringTestst=newStringTest();st.testString();}/**介绍String的常用方法*/publicvoidtestString(){Stringstr="Thisisateststring!";System.out.println("\n用于被测试的字符串为:"+str);System.out.println("\n方法length()返回字符串的长度为:");intlength=str.length();System.out.println(String.valueOf(length));System.out.println("\n方法equals(Objecto)判断字符串内容是否相同,与字符串\"test\"进行比较的结果为:");booleanb=str.equals("test");System.out.println(b?"相等":"不相等");System.out.println("equalsIgnoreCase(Objecto)比较\"test\"与\"Test\"比较的结果:");b="test".equalsIgnoreCase("Test");System.out.println(b?"相等":"不相等");System.out.println("\ncharAt(intindex)方法:某个位置的字符");charc=str.charAt(5);System.out.println("\n测试字符串第5个位置的字符为:"+String.valueOf(c)+".注意索引从0开始");System.out.println("\n获取子串方法:subString(intfromindex)和substring(intfromindex,intendindex)");System.out.println("第一个方法从fromindex开始,第二个方法从fromindex开始到endindex结束的子串,索引从0开始,包含fromindex,不包含endindex。");StringstrSub=str.substring(3);System.out.println("str.substring(3)的结果为:"+strSub);strSub=str.substring(3,6);System.out.println("str.substring(3,6)的结果为:"+strSub);System.out.println("\n去除字符串前面或者后面的空格,可以使用trim()方法:");System.out.println("字符串\"10001\"原来的长度为:"+"10001".length()+"使用trim()方法之后的长度为:"+"10001".trim().length());printContent("\n\n判断一个字符在字符串中的位置,可以使用indexOf(intch)和indexOf(intch,intfrom)方法"+",\n如果不存在返回0,第一个方法从字符串开头查找,第二个方法从form为置开始查找,包含该位置");intindex=str.indexOf('s');printMethod("str.indexOf('s')");printResult(String.valueOf(index));index=str.indexOf('s',6);printMethod("\nstr.indexOf('s',6)");printResult(String.valueOf(index));printContent("\n\n判断一个字符在字符串中的位置,可以使用indexOf(Stringstr)和indexOf(Stringstr,intfrom)方法"+",\n如果不存在返回0,第一个方法从字符串开头查找,第二个方法从form为置开始查找,包含该位置");index=str.indexOf("is");printMethod("str.indexOf(\"is\")");printResult(String.valueOf(index));index=str.indexOf("is",3);printMethod("\nstr.indexOf(\"is\",3)");printResult(String.valueOf(index));index=str.indexOf("is",7);printMethod("\nstr.indexOf(\"is\",7)");printResult(String.valueOf(index));printContent("\n与indexOf方法相似,还有lastIndexOf方法,用法基本相同,不同的是开始查找的位置不同,一个从前,一个从后");printContent("\n判断字符串是否以某个子串为后缀,使用endsWith(Stringstr)");b=str.endsWith("test");printMethod("str.endsWith(\"test\")");printResult(String.valueOf(b));b=str.endsWith("string!");printMethod("\nstr.endsWith(\"string!\")");printResult(String.valueOf(b));printContent("\n\n与endsWith方法功能相似,startWith(Stringprefix)和"+"\nstartWith(Stringprefix,inttoffset)用于判断是否以某个子串为前缀");printContent("\n\n替换字符串中的字符,使用replace(charoldChar,charnewChar)方法");Stringstr2=str.replace('s','S');printMethod("str.replace('s','S')");printResult(str2);printContent("\n\n替换字符串中的第一次出现的某个字串,使用replaceFirst(StringoldStr,StringnewStr)方法");str2=str.replaceFirst("is","IS");printMethod("str.replaceFirst(\"is\",\"IS\")");printResult(str2);printContent("\n\n替换字符串中的所有的出现的某个字串,使用replaceAll(StringoldStr,StringnewStr)方法");str2=str.replaceAll("is","IS");printMethod("str.replaceAll(\"is\",\"IS\")");printResult(str2);printContent("\n\n可以根据某个特定的格式把字符串分成多个子串,使用split方法,"+"\n使用的测试字符串为zhangsan-lisi-wangwu");str2="zhangsan-lisi-wangwu";StringstrSplit[]=str2.split("-");printMethod("str.split(\"-\")");for(inti=0;i<strSplit.length;i++)printResult(strSplit[i]+"");}/**显示注释的内容*/publicvoidprintContent(Stringstr){System.out.println(str);}/**显示代码*/publicvoidprintMethod(Stringstr){System.out.print(str);for(inti=0;i<30-str.length();i++)System.out.print("");}/**显示结果*/publicvoidprintResult(Stringstr){System.out.print(str);}}要求:(1)分析该程序,写出运行结果【实验结果与分析】2、程序填空按模板要求,将【代码1】~【代码09】替换为Java程序代码。StringExample.javaclassStringExample{publicstaticvoidmain(Stringargs[]){Strings1=newString("youareastudent"),s2=newString("howareyou");if(【代码1】)//判断s1与s2是否相同{System.out.println("s1与s2相同");}else{System.out.println("s1与s2不相同");}Strings3=newString("51010019851022024");if(【代码2】)//判断s3的前缀是否是“510100”{System.out.println("四川省的身份证");}Strings4=newString("你"),s5=newString("我");if(【代码3】)//s4大于s5{System.out.println("s4大于s5");}else{System.out.println("s4小于s5");}intposition=0;Stringpath="c:\\java\\jsp\\A.java";position=【代码4】//获取path中最后出现目录分隔符号的位置System.out.println("c:\\java\\jsp\\A.java中最后出现\\的位置:"+position);StringfileName=【代码5】//获取path中“A.java”子字符串System.out.println("c:\\java\\jsp\\A.java中含有的文件名:"+fileName);Strings6=newString("100"),s7=newString("123.678");intn1=【代码6】//将s6转化成int型数据doublen2=【代码7】//将s7转化成double型数据doublen=n1+n2;System.out.println(n);Strings8=newString("ABCDEF");chara[]=【代码8】//将s8存放到数组a中for(inti=a.length-1;i>=0;i--){【代码9】//打印a[I]}}}要求:(1)给出所缺的Java语句classStringExample{publicstaticvoidmain(Stringargs[]){Strings1=newString("youareastudent"),s2=newString("howareyou");if(s1.equals(s2))//判断s1与s2是否相同{System.out.println("s1与s2相同");}else{System.out.println("s1与s2不相同");}Strings3=newString("51010019851022024");if(s3.startsWith("510100"))//判断s3的前缀是否是“510100”{System.out.println("四川省的身份证");}Strings4=newString("你"),s5=newString("我");if(pareTo(s5)>0)//s4大于s5{System.out.println("s4大于s5");}else{System.out.println("s4小于s5");}intposition=0;Stringpath="c:\\java\\jsp\\A.java";position=path.indexOf('\\',10);//获取path中最后出现目录分隔符号的位置System.out.println("c:\\java\\jsp\\A.java中最后出现\\的位置:"+position);StringfileName=path.substring(12,18);//获取path中“A.java”子字符串System.out.println("c:\\java\\jsp\\A.java中含有的文件名:"+fileName);Strings6=newString("100"),s7=newString("123.678");intn1=Integer.parseInt(s6);//将s6转化成int型数据doublen2=Double.parseDouble(s7);//将s7转化成double型数据doublen=n1+n2;System.out.println(n);Strings8=newString("ABCDEF");chara[]=s8.toCharArray();//将s8存放到数组a中for(inti=a.length-1;i>=0;i--){System.out.println(a[i]);//打印a[I]}}}(2)运行程序,给出正确的程序运行结果【实验结果与分析】_________________________________________________________________________________3、编辑并运行下面程序,理解正规式的使用/****身份证号码验证***/ importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassRegTest{staticvoidtest(){Patternp=null;//正则表达式Matcherm=null;//操作的字符串booleanb=false;//正则表达式表示15位或者18位数字的一串数字p=Ppile("\\d{15}|\\d{18}");m=p.matcher();b=m.matches();System.out.println("身份证号码正确:"+b);//输出:truep=Ppile("\\d{15}|\\d{18}");m=p.matcher("020101198506020080");//错误首位为0b=m.matches();System.out.println("身份证号码错误:"+b);//输出:false}publicstaticvoidmain(Stringargus[]){test();}}要求:运行程序,给出正确的程序运行结果,理解正规式的使用。【实验结果与分析】________________________________________________________________________________4、编写程序编写程序,从一字符串中,利用正规式处理功能,检索出所有的EMAIL地址。程序代码:importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassRegTest{staticvoidtest(){Stringreg="^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";Stringemail="cshj@163dajj26176@qq@yu21yuy@163.com@..u1@";Stringemailc=newString();inti,j,k=0;for(i=0;i<email.length()-3;i++)if((email.substring(i,i+4)).equals(".com")){ emailc=email.substring(k,i+4); for(j=0;j<=i-3;j++) if(emailc.substring(j,emailc.length()).matches(reg)) { System.out.println(emailc.substring(j,emailc.length())); break; }k=i+4;}}publicstaticvoidmain(Stringargus[]){ test();}}【实验结果与分析】【实验目的02】---常用类掌握日期相关类;掌握Math相关类等【实验内容】运行下面程序,给出程序运行结果cimportjava.util.*;importjava.text.*;publicclassLX5_10{publicstaticvoidmain(Stringargs[]){Datetoday=newDate();//当前日期和时间SimpleDateFormatsdf;sdf=newSimpleDateFormat("yyyy年MM月dd日hh时mm分ss秒aEEEEE");System.out.println("当前日期和时间:"+sdf.format(today));longhms=System.currentTimeMillis();//当前时间的毫秒数System.out.println("当前时间的毫秒数="+hms);Datetomorrow=newDate(hms+24*60*60*1000);System.out.println("明天是"+sdf.format(tomorrow));Calendarnow=Calendar.getInstance();intyear=now.get(Calendar.YEAR);//年份intmonth=now.get(Calendar.MONTH)+1;//月份intday=now.get(Calendar.DATE);//日期System.out.print("今天是"+year+"年"+month+"月"+day+"日");intweek=now.get(Calendar.DAY_OF_WEEK);//星期switch(week){case1:System.out.println("星期日");break;case2:System.out.println("星期一");break;case3:System.out.println("星期二");break;case4:System.out.println("星期三");break;case5:System.out.println("星期四");break;case6:System.out.println("星期五");break;case7:System.out.println("星期六");break;}}}要求:(1)运行程序,给出正确的程序运行结果(2)掌握Calendar类、SimpleDateFormat类和Date类的用法。(3)修改程序,按下面的格式输出当天的日期和时间:公元****年**月**日**时**分**秒年/月/日时:分年-月-日时:分:秒****年**月**日**时**分**秒星期*年/月/日星期*今天是:一年中的第*天,第**个星期一个月中第**个星期____________________________________________________________________importjava.util.*;importjava.text.*;publicclassLX5_10{publicstaticvoidmain(Stringargs[]){Datetoday=newDate();//当前日期和时间SimpleDateFormatsdf;sdf=newSimpleDateFormat("yyyy年MM月dd日hh时mm分ss秒");System.out.println("公元"+sdf.format(today));sdf=newSimpleDateFormat("yyyy/MM/ddhh:mm");System.out.println(sdf.format(today));sdf=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");System.out.println(sdf.format(today));sdf=newSimpleDateFormat("yyyy年MM月dd日hh时mm分ss秒EEEEE");System.out.println(sdf.format(today));sdf=newSimpleDateFormat("yyyy年MM月dd日EEEEE");System.out.println(sdf.format(today));Calendarnow=Calendar.getInstance();intyear=now.get(Calendar.YEAR);//年份intmonth=now.get(Calendar.MONTH)+1;//月份intday=now.get(Calendar.DATE);//日期System.out.print("今天是:一年当中的第"+now.get(Calendar.DAY_OF_YEAR)+"天"+","+"第"+now.get(Calendar.WEEK_OF_YEAR)+"个星期"+","+"一个月当中的第"+now.get(Calendar.WEEK_OF_MONTH)+"个星期");}}____________________________________________________________________运行下面程序,给出程序运行结果。importjava.util.*;classLX5_8{publicstaticvoidmain(Stringargs[]){Randomr1=newRandom(1234567890L);Randomr2=newRandom(1234567890L);booleanb=r1.nextBoolean();//随机数不为0时取真值inti1=r1.nextInt(100);//产生大于等于0小于100的随机数inti2=r2.nextInt(100);//同上doublei3=r1.nextDouble();//产生大于等于0.0小于1.0的随机数doublei4=r2.nextDouble();//同上doubled1=Math.sin(Math.toRadians(30.0));doubled2=Math.log(Math.E);doubled3=Math.pow(2.0,3.0);intr=Math.round(33.6F);System.out.println("b的随机数不为0时"+b);System.out.println("i1的随机数为"+i1);System.out.println("i2的随机数为"+i2);System.out.println("d1的随机数为"+i3);System.out.println("d2的随机数为"+i4);System.out.println("30弧度的正弦值:Math.sin(Math.toRadians(30.0))="+d1);System.out.println("E的对数值:Math.log(Math.E)="+d2);System.out.println("2的3次方:Math.pow(2.0,3.0)="+d3);System.out.println("33.6F四舍五入:Math.round(33.6F)="+r);}}要求:(1)运行程序,给出正确的程序运行结果(2)掌握Random类的用法(3)编写一个模拟掷筛子应用程序程序_________________________________________________________________________________importjava.util.*;importjava.io.*;classLX5_8{publicstaticvoidmain(Stringargs[])throwsIOException{intsum;for(;;){newScanner(System.in).nextLine();Randomr1=newRandom();Randomr2=newRandom();inti1=r1.nextInt(7);inti2=r2.nextInt(7);sum=i1+i2;if(sum>6)//产生大于等于0小于7的随机数 { System.out.print(i1+""+i2); System.out.print("大"); }else { System.out.print(i1+""+i2); System.out.print("小"); }}}}//功能说明:每按一次回车键,“两个骰子”摇出一个1-6数字补充内容1.编写输出回文的程序,即字符串颠倒顺序后再输出。提示:运行结果参考如下。图运行界面部分程序参考如下(也可不用StringBuffer类,即都用String类实现,但代价高)。publicclassPalindrome{publicstaticvoidmain(String[]args){Stringstr1="僧游云隐寺";//字符串常量类对象Stringstr2=reverse(str1);//调用串倒转方法System.out.println(str1+","+str2);str1="人过大佛寺";...}publicstaticStringreverse(Strings){//串倒转方法intlen=s.length();//串常量长度StringBuffersb=newStringBuffer();//字符串变量类对象for(inti=...;...;...){sb.append(...);//串变量对象追加串常量的第i个字符s.charAt(i)}returnsb.toString();}}要求:把上面的程序补充完整并给出程序运行结果【实验结果与分析】publicclassPalindrome{publicstaticvoidmain(String[]args){Stringstr1="僧游云隐寺";//字符串常量类对象Stringstr2=reverse(str1);//调用串倒转方法System.out.println(str1+","+str2);str1="人过大佛寺"; str2=reverse(str1);System.out.println(str1+","+str2);}publicstaticStringreverse(Strings){//串倒转方法intlen=s.length();//串常量长度StringBuffersb=newStringBuffer();//字符串变量类对象for(inti=len-1;i>=0;i--){sb.append(s.charAt(i));//串变量对象追加串常量的第i个字符s.charAt(i)}returnsb.toString();}}2.编写程序,调用上题的回文方法,把数字字符串"123456789"变成"987654321",并输出这两个字符串连接后的结果,以及其对应整数相加的结果。提示:运行结果参考如下。图运行界面部分程序参考如下。publicclassUsePalindrome{publicstaticvoidmain(String[]args){Stringstr1="123456789";Stringstr2=Palindrome.reverse(str1);inti1=Integer.parseInt(str1);inti2=......}}要求:把上面的程序补充完整并给出程序运行结果【实验结果与分析】publicclassUsePalindrome{publicstaticvoidmain(String[]args){Stringstr1="123456789";Stringstr2=Palindrome.reverse(str1);inti1=Integer.parseInt(str1);inti2=Integer.parseInt(str2);intsum=i1+i2;System.out.println("两个字符串"+""+str1+"和"+str2);System.out.println("连接结果为:"+str1.concat(str2));System.out.println("相加结果为:"+sum);}publicstaticStringreverse(Strings){//串倒转方法intlen=s.length();//串常量长度StringBuffersb=newStringBuffer();//字符串变量类对象for(inti=len-1;i>=0;i--){sb.append(s.charAt(i));//串变量对象追加串常量的第i个字符s.charAt(i)}returnsb.toString();}}3.编写程序,将一串以逗号分隔的数字字符串分割并转换成若干个单独的数值,再进行累加运算,并输出结果。提示:运行结果参考如下。图运行界面提示:部分程序参考如下(也可用String类结合StringBuffer类完成本题)。importjava.io.*;publicclassStringPartition{publicstaticvoidmain(String[]args){try{BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));System.out.println("请输入一串逗号分隔的数字,例如123,456,789");Stringstr=in.readLine();Strings="";intsum=0;for(inti=0;i<...;...){if(str.charAt(i)!=','){s+=...;//字符串s连接字符串str的第i个字符}else{System.out.println("分割为"+s);sum+=Integer.parseInt(s);s="";}}...System.out.println("总和是:"+sum);}catch(Exceptione){System.out.println("输入异常:"+e);}}}要求:(1)把上面的程序补充完整并给出程序运行结果(2)使用String类的split方法:String[]split(Stringregex)根据给定的正则表达式regex的匹配来拆分此字符串,编写程序完成【实验结果与分析】(1)importjava

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论