java实验六 字符串与正则表达式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六字符串与正则表达式
一.实验目的和要求
目的:
1、掌握字符串操作
2、掌握正则表达式的应用。
要求:
1、填充程序模板,并调试运行。
2、实验报告给出内容1的填充代码和内容2的所有源代码。
二.实验内容
1、按程序模板要求,将注释处替换为Java程序代码。
2、编写一个模式匹配函数,用于验证一串字符串是否符合email格式。三.实验环境
硬件:
(1)学生用微机
(2)多媒体实验教室
软件:
(1)Windows XP中文操作系统
(2)JDK1.7.0
四.算法描述及实验步骤
实验步骤:
1、填充程序模板
按模板要求,将【代码1】~【代码9】替换为Java程序代码。
StringExample.java
class StringExample
{
public static void main(String args[ ])
{
String s1=new String("you are a student"),
s2=new String("how are you");
if (【代码1】) // 判断s1与s2是否相同
{
System.out.println("s1与s2相同");
}
else
{
System.out.println("s1与s2不相同");
}
String s3=new String("22030219851022024");
if (【代码2】) // 判断s3的前缀是否是“220302”
{
System.out.println("吉林省的身份证");
}
String s4=new String("你"),
s5=new String("我");
if(【代码3】) // s4大于s5
{
System.out.println("s4大于s5");
}
else
{
System.out.println("s4小于s5");
}
int position=0;
String path="c:\\java\\jsp\\A.java";
position=【代码4】 // 获取path中最后出现目录分隔符号的位置 System.out.println("c:\\java\\jsp\\A.java中最后出现\\的位置:"+position);
String fileName=【代码5】 // 获取path中“A.java”子字符串
System.out.println("c:\\java\\jsp\\A.java中含有的文件名:"+fileName);
String s6=new String("100"),
s7=new String("123.678");
int n1=【代码6】 // 将s6转化成int型数据
double n2=【代码7】 // 将s7转化成double型数据
double n=n1+n2;
System.out.println(n);
String s8=new String("ABCDEF");
char a[ ]=【代码8】 // 将s8存放到数组a中
for(int i=a.length-1;i>=0;i--)
{
【代码9】// 打印 a[I]
}
}
}
五.调试过程
根据实验要求将代码1-9填充完整后调试、运行得:
文件名处出现了错误,多了一个\,是由于起始位置直接用了position(path中最后出现目录分隔符号的位置),而忘了加1.
六.实验结果
修改程序调试运行得(最终程序见附录):
七.总结
做这个实验没什么感想,学了一个学期也算对JAVA程序设计比较熟悉了吧。上面也没写代码是怎么来的,就在这总结下吧:1.equals方法用来比较两个字符串的值是否相等,而==是比较两字符串的引用是否指向同一个实例;pareTo方法可以用于按字典顺序比较两个字符串(注意到s3的长度比"220302"的长度大11,而两数字之间的Unicode值最多相差10);pareTo(B)比较两字符串A与B,返回两字符串差值(按字典顺序,因为字典顺序定义太长,在这就不解释了);4.用int lastIndexOf()方法搜索字符或子字符串最后一次出现的位置;5.用substring()方法提取子字符串;6.Integer.parseInt()方法可将字符串转换为整型数,Integer.toString()方法可将整型数转换成字符串;7. 用Double.parseDouble()方法将字符串转换为Double型数;8.用toCharArray()方法将字符串转换为字符数组;9.System.out.println()是打印语句最熟悉不过了。这些也就是我做这个实验的收获啦!
附录:
最终程序:
// StringExample.java
class StringExample
{
public static void main(String args[ ])
{
String s1=new String("you are a student"),
s2=new String("how are you");
if (s1.equals(s2)) // 判断s1与s2是否相同
{
System.out.println("s1与s2相同");
}
else
{
System.out.println("s1与s2不相同");
}
String s3=new String("22030219851022024");
if (pareTo("220302")==s3.length()-"220302".length()) // 判断s3的前缀是否是“220302”
{
System.out.println("吉林省的身份证");
}
String s4=new String("你"),
s5=new String("我");
if(pareTo(s5)>0) // s4大于s5
{
System.out.println("s4大于s5");
}
else
{
System.out.println("s4小于s5");
}
int position=0;
String path="c:\\java\\jsp\\A.java";
position=stIndexOf("\\"); // 获取path中最后出现目录分隔符号的位置
System.out.println("c:\\java\\jsp\\A.java中最后出现\\的位置:"+position);
String fileName=path.substring(position+1); // 获取path中“A.java”子字符串
System.out.println("c:\\java\\jsp\\A.java中含有的文件名:"+fileName);
String s6=new String("100"),
s7=new String("123.678");
int n1=Integer.parseInt(s6); // 将s6转化成int型数据
double n2=Double.parseDouble(s7); // 将s7转化成double型数据
double n=n1+n2;