java根据始末年份获得中间年份_Java基础(6)——基础类库和时间提取

本节内容

1.String字符串

2.StringBuilder

3.提取时间

一、String字符串

1.基础类库:不用刻意去背,知道这个类是做什么,有什么方法,大概知道这个方法里面的单词即可

2.字符串:①String:不可变的字符串,没有直接操作字符串的增加、改变、删除的方法 ②StringBuilder:可变字符串

3.String类使用final修饰,不能子类化,也就是不能作为父类被其他类继承,以下操作不合法

class MyString extends String{

}

4.创建字符串:(1)常量字符串

String country= "中国";

String city="重庆";

(2)使用构造方法创建,其中detail1在栈上定义,new的对象在堆里面。“中国”在常量区,虽然和上面的country指向的内容相同,但它们是不同的。country是在栈里面创建的对象,直接指向常量区的“中国”,而detail1指向的先是堆里面的一个对象,然后堆里面的对象再指向“中国”。

String detail1=new String("中国");

注:三种比较方法 ①==:比较的是对象本身 ②.equals()比较的是内容③compareTo方法:获取大小关系,返回值为 1:a>b 0:a=b -1:a

System.out.println(country==detail1);

System.out.println(country.equals(detail1));

System.out.println(country.compareTo("中国1"));

所以下面内容前者显示的是false,而中间显示的是true,最后显示的是-1。以后比较字符串是否相同,一般用.equals()方法

(3)创建一个字符数组,然后将数组名传给new String 方法

char [] name= new char[]{'a','b','c','d','e','f'};

String s_name= new String(name);

5.字符串的长度 length

Java的字符串有一个.length方法直接获取字符串的长度,在遍历循环时可以直接调用该方法

for (int i=0;i

System.out.println(s_name.charAt(i));

}

6.判断字符串是否为空,调用IsEmpty方法

if(s_name.isEmpty()){

}

7.判断字符串是不是以某个字符串开头/结尾

①判断以某个字符串开头,调用startsWith方法,一种是从头有特定字符串,还有一种是从第几个开始有特定字符,输出结果显示为true或false

String url= "http://www.baidu.com";

System.out.println(url.startsWith("http"));

System.out.println(url.startsWith("http",4));

②判断以某个字符串结尾,调用endsWith方法

String pic="http://www.baidu.com/image.1.jpg";

if(pic.endsWith("jpg")){

System.out.println("图片");

}

8.获取子字符串在字符串中的起始位置,调用indexOf函数

以下代码第一行结果显示11,如果想从第几位以后开始找,就在后面写上一个数字,然后就会显示这个数后面第一次出现这个子字符串的起始位置

System.out.println(pic.indexOf("baidu"));

System.out.println(pic.indexOf("bai",8));

9.获取子字符串,调用substring函数

如果只有一个参数,那么就是从这个索引值一直到字符串结尾的这一段。如果想要中间的某一段,那么就传两个参数,需要那段的开头到结尾

System.out.println(pic.substring(4));

System.out.println(pic.substring(3,8));

10.字符串的替换

用某一段字符串替换原字符串的某一段字符串,调用replaceAll()方法,有两个参数,用后面的替换前面的。注意,替换之后会输出一段新的字符串,但是原来的字符串并没有被改变

System.out.println(pic.replaceAll("baidu","tengxun"));

字符串分割,以原字符串的某些符号作为分隔符,将字符串分隔开,调用splict()方法,中间的参数为所选分隔符

String[] splict= pic2.split("/");

for(String comp:splict){

System.out.println(comp);

}

11.将字符串末尾的空格去掉,调用trim方法

System.out.print(pic2.trim());

二、StringBuilder

StringBuilder并不是继承String类,它创建的是可变的字符串,先创建一个StringBuilder类的对象

StringBuilder test =new StringBuilder();

1.拼接字符:可以调用append()函数将其他的字符串拼接给它

test.append("My name is ");

test.append("jack");

2.替换字符:可以调用replace()函数替换它,函数有三个参数,前两个表示你要替换的字符串的始末位置,最后是你要的替换它的字符串

test.replace(0,10,"merry");

如果是想要替换某个特定的字符串,还可以调用lastindexOf方法记录被替换的字符串的首位置,然后用.length方法获取该字符串的长度

int start =test.lastIndexOf("jack");

test.replace(start,start+"jack".length(),"merry");

3.删除字符:调用delet()函数删除字符,中间两个参数表示要删除字符的始末位置

test.delete(1,3);

//删除所有

test.delete(0,test.length());

4.插入数据,调用insert()方法,有两个参数,第一个是你要插入的位置,第二个是插入的数据

test.insert(1,"My");

三、提取日期(提取的都是当前这一刻的时间)

(一)DataFormat方法

1.首先创建一个日期对象

Date date =new Date();

2.可以调用format方法将现在的日期输出,如果最开始给一个字符串赋值为d,表示日,1-2位显示,如2,无前置0,例如以下代码

String format= "dd";

SimpleDateFormat dateFormat =new SimpleDateFormat(format);

String str= dateFormat.format(date);

System.out.println(str);

3.结果输出为06,因为今天是4月6日,如果format是d的话,那么输出的就只有6。给format赋的值的形式不一样,结果也不一样。如果是“EEE”,那么就会输出星期一。

4.如果给format赋的值是MM-dd,那么结果就显示为04-06

5.如果想要输出年份的话,那么在前面添加一个y就行了,输出结果就为2020-04-06。在这些字母中年不仅可以加-,还可以加文字。例如格式为y年MM月dd日,那么输出结果就为2020年04月06日。如果是yy那么就是两位数字格式显示年份,yyy和yyyy都是四位数字显示年份

6.hh表示12进制的小时,HH表示的是24进制的小时,mm和ss分别表示分钟和秒

(二)Calendar方法

Calendar calendar=Calendar.getInstance();

//获取时间

System.out.println(calendar.get(Calendar.YEAR));

System.out.println(calendar.get(Calendar.MONTH)+1);

System.out.println(calendar.get(Calendar.DATE));

System.out.println(calendar.get(Calendar.HOUR));

System.out.println(calendar.get(Calendar.MINUTE));

System.out.println(calendar.get(Calendar.SECOND));

这个就需要自己拼接

String time= calendar.get(Calendar.YEAR)+"-"+(calendar.get(Calendar.MONTH)+1)

+"-"+calendar.get(Calendar.DATE);

System.out.println(time);

因为第二种Calendar方法比较繁琐,所以第一种Data方法用的比较多,以后我们如果要使用这个也可以把这个写成一个函数封装起来。

OK,以上就是我们今天的全部内容了,撒悠拉拉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值