本节内容
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<b
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<s_name.length();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,以上就是我们今天的全部内容了,撒悠拉拉。
网友评论