1.利用字符串的相关知识,编程实现如下功能:
(1)定义字符串str的值为
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方法,测试上述代码的功能。
public class Example1 {
public static void main(String[] args)
{
String str=new String("3|Four Rooms (1995)|01-Jan-1995||http://us.imdb.com(1995)|0|0|0|0|0|1|0|0");//定义字符串
System.out.println("字符串:"+str);
int number=0; //“|”出现的位数
int nextNumber=1;//“|”下一次出现的位数
for(int i=1;i<str.length();)
{
System.out.println(str.substring(number, str.indexOf("|",nextNumber)));//输出字符串
number=nextNumber+1;//始位和下一位交换数据
nextNumber=str.indexOf("|", i+1);//查找下一“|”的位置
i=nextNumber;//将nextNumber的值赋给i
if(i==-1)//如果i等于-1,则查找完毕,退出循环
break;
}
//正则表达式:输出所单词
String regex="[\\s\\d\\p{Punct}]+";
String words[]=str.split(regex);
for(int i=0;i<words.length;i++) {
int m=i+1;
System.out.println("单词"+m+":"+words[i]);
}
//输出所有1995的位置
int a=str.indexOf("1995");
while(a>0) {
System.out.println(a);
a=str.indexOf("1995",a+"1995".length()); //改变搜索位置,寻找下一个匹配
}
}
}
2.利用DateFormat、Date、Calendar等相关类,编程实现如下功能:
(1)定义字符串str的值为“2020-05-01 12:12:01”;
(2)输出str表示的年、月、日、时、分、秒;
(3)判断并输出str表示的时间是该年度第几周、第几天;
(4)编写main方法,测试上述代码的功能
import java.time.*;
import java.util.Locale;
public class Example_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//从JavaSE8开始提供java.time包,改包中有专门处理日期和时间的类,而早期的java.until包中Date类成为过期API
LocalDateTime date=LocalDateTime.of(2020, 05, 01, 12, 12, 01);
String s=String.format("%tY年%<tm月%<td日%<tH时%<tM分%<tS",date);
System.out.println(s);
System.out.println("年:"+date.getYear()+",月:"+date.getMonth()+",日:"+date.getHour()+",分:"+date.getMinute()+",秒:"+date.getSecond());
System.out.println("今天是本年的第"+date.getDayOfYear()+"天");
//没有找到显示第几周的函数,只能自己编一个简单的判断算法
int m=(date.getDayOfYear()-date.getDayOfWeek().getValue())/7+1;
int n=(date.getDayOfYear()-date.getDayOfWeek().getValue())%7;//关于每年第一周的定义:一年的第一个日历星期包括该该年的第一个星期四
if(n>=4)//剩余的天数大于四天,即可认为包含星期四,该周是本年的第一周
m=m+1;
System.out.println("本周是本年的第"+m+"周");
}
}