简介
本章是对JavaSE学习过程的记录,字符String类和日期Calendar类方面的学习。
String简介+代码练习
对于String学习,主要
1.有怎么定义String,主要有两种方式。
2.定义方式的区别,区别equals和==区别
3.charAt方法,表示第几位数上的字符。
4.分类方式,用ASCLL码来分类(也可以用正则表达式来判断,ASCLL比较简单易懂)
/**
* 两种常用定义方式,即String(),String(char[] value)
* */
private static String str1="abc"; //第一种方式,String()
private static char data[]={'a','b','c'}; //第二种方式,String(char[] value)
private static String str2=new String(data);
/**
*显示定义String
* */
public void show(){
System.out.println(str1);
System.out.println(str2);
}
/**
* 比较==和equals的区别,==是堆的内存空间地址,equals是内容比较
* */
public void Test1(){
System.out.println(str1=="abc"); //结果显示:true
System.out.println(str2=="abc"); //结果显示:false
System.out.println(str1==str2); //结果显示:false
System.out.println(str1.equals(str2)); //结果显示:true
}
/**
* charAt方法
* */
public void Test2(){
System.out.println(str1.charAt(str1.length()-1));
}
/**
* 统计方式
* */
public void Test3(String str){
int yingwen=0;
int kongge=0;
int shuzi=0;
int qita=0;
for(int i=0;i<str.length();i++){
char s=str.charAt(i);
if(s>='a'&&s<='z'||s>='A'&&s<='Z'){
yingwen++;
System.out.println("英文字符:"+str.charAt(i));
}else if (s==' '){
kongge++;
System.out.println("空格字符:"+str.charAt(i));
}else if (s<='9'&&s>='0'){
shuzi++;
System.out.println("数字字符:"+str.charAt(i));
}else{
qita++;
System.out.println("其他字符:"+str.charAt(i));
}
}
System.out.println("英文字符个数:"+yingwen);
System.out.println("空格字符个数:"+kongge);
System.out.println("数字字符个数:"+shuzi);
System.out.println("其他字符个数:"+qita);
}
Calendar简介+代码
这里主要介绍Calndar类的注意事项:月份和星期,因为最开始的时期(一年的第一个月和一星期的第一天)所以需要要注意。
public void DateTest(){
java.util.Date date=new java.util.Date();
System.out.println(date);
}
public void CalendarTest(){
Calendar calendar=Calendar.getInstance(); //获取实例
int year=calendar.get(Calendar.YEAR); //获取年
int month=calendar.get(Calendar.MONTH)+1; //获取月,注意是从0开始
int day=calendar.get(Calendar.HOUR_OF_DAY); //获取日
int week=calendar.get(Calendar.DAY_OF_WEEK)-1; //获取星期,注意星期日开始即1开始
int hour=calendar.get(Calendar.HOUR_OF_DAY); //获取小时,24小时格式
int minute=calendar.get(Calendar.MINUTE); //获取分钟
int second=calendar.get(Calendar.SECOND); //获取秒
System.out.println(year+"年"+month+"月"+day+"日"+"-星期"+week+"-"+
hour+"时"+minute+"分"+second+"秒");
}
总结
这里就主要说明不足之处,针对月份学习和练习不够充分,望后期补充。
1.如怎么判断闰年
2.怎么计算一年的第几天等问题。
3.怎么计算两时间点的差(差多少天)。
补充代码
判断闰年
public int leapyear(int time){
if(time%400==0){
// System.out.println(time+"是闰年");
return 1;
}
if(time%4==0&&time%100!=0){
// System.out.println(time+"是闰年");
return 1;
}
// System.out.println(time+"不是闰年");
return 0;
}
判断一年的第几天
public int dayofyear(int year,int month,int day){
int sumday=day; //计数
for(int i=1;i<month;i++){ //用for循环判断月份,注意从1开始还有<month
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
sumday=sumday+31;
}
if(i==4||i==6||i==9||i==11){
sumday=sumday+30;
}
if(i==2&&leapyear(year)==1){
sumday=sumday+29;
}
if(i==2&&leapyear(year)==0){
sumday=sumday+28;
}
}
return sumday;
}
两个时间点差
public int sumdayofyear(int year){
if(leapyear(year)==1){
return 366;
}
return 365;
}
public int differenceoftwo(int syear,int smonth,int sday
,int eyear,int emonth,int eday){
int dday=0;
for(int i=0;syear+i<eyear;i++){
dday=dday+sumdayofyear(syear+i);
}
dday=dday-dayofyear(syear,smonth,sday)+dayofyear(eyear,emonth,eday);
return dday;
}