实验3:常用实用类的应用
实验内容
1.利用字符串的相关知识,编程实现如下功能:
3|Four Rooms (1995)|01-Jan-1995||http://us.imdb.com(1995)|0|0|0|0|0|1|0|0;
(2)以“|”作间隔划分str,输出全部子串;
(3)利用正则表达式过滤掉无关内容后,输出str中出现的英文单词;
(4)输出所有“1995”的位置编号;
(5)编写main方法,测试上述代码的功能。
2.利用DateFormat、Date、Calendar等相关类,编程实现如下功能:
(1)定义字符串str的值为“2020-05-01 08:30:36”;
(2)输出str表示的年、月、日、时、分、秒;
(3)判断并输出str表示的时间是该年度第几周、第几天;
(4)编写main方法,测试上述代码的功能。
算法描述及实验步骤
(用自然语言或算法流程图的形式表达算法设计思想与算法实现步骤,注意不是贴源代码,百度搜索相关学习资料)
一、
1、创建类Example1,定义字符串str
2、用‘|’来划分str,需要用到的是String类中 的一个方法,
即public String[] aplit(String regex),字符串调用该方法时,使用参数指定的正则表达式regex作为分隔符标记分解出其中的单词,并将分解出的单词存放在字符串数组中,然后for循环进行输出。
3、因为要过滤无关内容,所有用到的正则表达式为str1=str.split("[\s\d\p{Punct}]+");然后for循环输出所有英文单词
4、要输出位置编号,所以要用到str.indexOf, 然后一个while循环,进行匹配,若匹配成功就进行输出,不成功就进行下一个位置。
二、
1、创建类Example2,定义字符串strDate
2、准备两个模板,patter1从字符串中提取日期数字,pattern2将提取后的日期数字变为指定的格式,然后SimpleDateFormat实例化模板对象,将给定的字符串中的日期提取出来并打印,如果失败,就进行异常处理。
3、Calendar.getInstance()获取时间,然后定义每周的第一天为Sunday,
用java.util.Calendar.setTime(Date) 方法设置日历的时间为给定的日期 Date;
然后用format方法对日期进行格式化并进行输出;
然后应用Calendar.get()方法,Calendar.WEEK_OF_WEEK和Calendar.WEEK_OF_YEAR输出给定时间是一年中第几周第几天。
代码:
1.利用字符串的相关知识,编程实现如下功能:
package 实验报告3;
public class Example1{
public static void main(String[] args) {
//(1)定义字符串str的值
String str="3|Four Rooms (1995)|01-Jan-1995||http://us.imdb.com(1995)|0|0|0|0|0|1|0|0";
//(2)以“|”作间隔划分str,输出全部子串;
String [] str1=str.split("[|]+");
for(String s:str1) {
System.out.println(s);
}
System.out.println("**********************************");
//(3)利用正则表达式过滤掉无关内容后,输出str中出现的英文单词;
str1=str.split("[\\s\\d\\p{Punct}]+");
for(String s:str1) {
System.out.println(s);
}
System.out.println("**********************************");
//(4)输出所有“1995”的位置编号;
int a=str.indexOf("1995");
while(a>0) {
System.out.println(a);
a=str.indexOf("1995",a+"1995".length()); //改变搜索位置,寻找下一个匹配
}
}
}
2.利用DateFormat、Date、Calendar等相关类,编程实现如下功能:
package 实验报告3;
import java.util.*;
import java.text.SimpleDateFormat;
public class Example2 {
public static void main(String[] args) {
//(1)定义字符串str的值为“2020-05-01 08:30:36”;
String strDate="2020-05-01 08:30:36";
//(2)输出str表示的年、月、日、时、分、秒;
String pattern1="yyyy-MM-dd HH:mm:ss"; //准备第一个模板,从字符串中提取日期数字
String pattern2="yyyy年MM月dd日 HH时mm分ss秒"; //准备第二个模板,将提取后的日期数字变为指定的格式
SimpleDateFormat matter1=new SimpleDateFormat(pattern1); //实例化模板对象
SimpleDateFormat matter2=new SimpleDateFormat(pattern2); //实例化模板对象
Date date=null;
try {
date=matter1.parse(strDate); //将给定的字符串中的日期提取出来
}catch(Exception e) { //若提供的字符串格式有错误,则进行异常处理
e.printStackTrace(); //打印异常信息
}
// (3)判断并输出str表示的时间是该年度第几周、第几天;
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.SUNDAY);
calendar.setTime(date);
System.out.println(matter2.format(date)); //将日期变为新的格式
System.out.println("是今年的第"+calendar.get(Calendar.WEEK_OF_YEAR)+"周");
System.out.println("是今年的第"+calendar.get(Calendar.DAY_OF_YEAR)+"天");
}
}