API:Application Programming Interface,应用程序编程接口
是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,
而又无需访问源码,或理解内部工作机制的细节。
![黑马程序员_复习_Day09 - 九五二七 - 今天](http://img1.ph.126.net/2Qy1TnrJoPe5r8RQj5K1Bw==/6608234207725663432.png)
String类
基本的易出错的地方
![黑马程序员_复习_Day09 - 九五二七 - 今天](http://img1.ph.126.net/DbQb8Za00ipNJKp2aDNb-Q==/6608687206515286771.png)
String类适用于描述字符串事物。
那么它就提供了多个方法对字符串进行操作。
常见的操作有哪些?
1.获取:
1.1 字符串中的包含的字符数,也就是字符串的长度。
int length():获取长度。数组也有length长度,但是是属性,没有括号,
而字符串是对象,length()是获取长度的方法
1.2 根据位置获取位置上某个字符。
char charAt(int index):(返回的是字符,故是char类型)
1.3 根据字符获取该字符在字符串中位置:indexOf
int indexOf(int ch):
返回的是ch在字符串中第一次出现的位置。因为是位置故返回值是int
int indexOf(int ch, int fromIndex) :(方法重载)
从fromIndex指定位置开始,获取ch在字符串中出现的位置。
int indexOf(String str):
返回的是str在字符串中第一次出现的位置。
int indexOf(String str, int fromIndex) :
从fromIndex指定位置开始,获取str在字符串中出现的位置。
对应indexOf有系列的反向索引lastIndexOf.用法差不多
int lastIndexOf(int ch) :
![黑马程序员_复习_Day09 - 九五二七 - 今天](http://img1.ph.126.net/MCWtUiwoOP5ap_Yd8KHY4A==/6608240804795430085.png)
2.判断:
2.1 字符串中是否包含某一个子串。
boolean contains(str):
特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1.
表示该str不在字符串中存在。
所以,也可以用于对指定判断是否包含。
if(str.indexOf("aa")!=-1)
而且该方法即可以判断,有可以获取出现的位置。
2.2 字符中是否有内容。
boolean isEmpty(): 原理就是判断长度是否为0.
“ ”是个对象, null是指向空
2.3 字符串是否是以指定内容开头。
boolean startsWith(str);
2.4 字符串是否是以指定内容结尾。
boolean endsWith(str);
2.5 判断字符串内容是否相同。覆写了Object类中的equals方法。
boolean equals(str);
2.6 判断内容是否相同,并忽略大小写。
boolean equalsIgnoreCase();
![黑马程序员_复习_Day09 - 九五二七 - 今天](http://img2.ph.126.net/ShMnbfFS0gnQD_Xfi_hhGw==/6608495891492054570.png)
3.转换。
3.1 将字符数组转成字符串。
构造函数:String(char[])
String(char[],offset,count):将字符数组中的一部分转成字符串。
![黑马程序员_复习_Day09 - 九五二七 - 今天](http://img2.ph.126.net/0Ow8hLEWD3wb6LBzu6CGDw==/6608255098446588443.png)
![黑马程序员_复习_Day09 - 九五二七 - 今天](http://img2.ph.126.net/HmHvfRtBNZK5XIWByWVJxA==/6608406831051222905.png)
静态方法:
static String copyValueOf(char[]);
static String copyValueOf(char[] da
static String valueOf(char[]):
3.2 将字符串转成字符数组。
char[] toCharArray():
3.3 将字节数组转成字符串。
String(byte[])
String(byte[],offset,count):将字节数组中的一部分转成字符串。
3.4 将字符串转成字节数组。
byte[] getBytes():
3.5 将基本数据类型转成字符串。
static String valueOf(int)
static String valueOf(double)
3+""; 相当于String.valueOf(3);
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
4.替换[必须记住]
String replace(oldchar,newchar);
![黑马程序员_复习_Day09 - 九五二七 - 今天](http://img2.ph.126.net/oGzFENKzJW3U7q8vLHCFOA==/6608696002608309512.png)
5,切割
String[] split(regex);
![黑马程序员_复习_Day09 - 九五二七 - 今天](http://img0.ph.126.net/FNfgwsuPlG00-jLVqHPkng==/6608807053282715133.png)
6,子串。获取字符串中的一部分。
String substring(begin);
String substring(begin,end);包含头不包含尾,通过子串获取整个字substring(0,s.length)
![黑马程序员_复习_Day09 - 九五二七 - 今天](http://img1.ph.126.net/fOI0ltjiVinLq1Ru7-_bZg==/6608482697352521230.png)
7,转换,去除空格,比较。
7.1 将字符串转成大写或则小写。
String toUpperCase();
String toLowerCase();
7.2 将字符串两端的多个空格去除。
String trim();
7.3 对两个字符串进行自然顺序的比较。
int compareTo(string);
![黑马程序员_复习_Day09 - 九五二七 - 今天](http://img0.ph.126.net/maEIBAeqvtMiTF0n43vB1A==/6608775167445509772.png)
curd: C create U update R read D delete
StringBuffer是字符串缓冲区,是一个容器。
特点:
1.长度是可变化的。
2.可以字节操作多个数据类型。
3.最终会通过toString方法变成字符串。
![黑马程序员_复习_Day09 - 九五二七 - 今天](http://img0.ph.126.net/Dq7R_lQ8sq_qeF_mV1s3aQ==/6608668514817615075.png)
常用方法:
1,存储。
StringBuffer append():将指定数据作为参数添加到已有数据结尾处。
StringBuffer insert(index,数据):可以将数据插入到指定index位置。
2,删除。
StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。
start - The beginning index, inclusive.
end - The ending index, exclusive.
StringBuffer deleteCharAt(index):删除指定位置的字符。
3,获取。
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int length()
String substring(int start, int end)
4,修改。
StringBuffer replace(start,end,string);
void setCharAt(int index, char ch) ;
![黑马程序员_复习_Day09 - 九五二七 - 今天](http://img1.ph.126.net/wp7YnqHvNv6t8YT3ExRCJw==/6608945591747816527.png)
5,反转。
StringBuffer reverse();
6,
将缓冲区中指定数据存储到指定字符数组中。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
JDK1.5 版本之后出现了StringBuilder.
安全问题是:一个容器A往里加数据时,B在同时做其他动作就可能产生异常
StringBuffer就会同步,内部有锁,但效率低,只单一操作
StringBuffer是线程同步。
StringBuilder是线程不同步。
以后开发,建议使用StringBuilder
升级三个因素:
1,提高效率。
2,简化书写。
3,提高安全性。
就在这个3点间相互权衡
基本数据类型对象包装类:是按照面向对象思想将基本数据类型封装成了对象。
好处:
1:可以通过对象中的属性和行为操作基本数据。
2:可以实现基本数据类型和字符串之间的转换。
关键字 对应的类名
byte Byte
short Short paserShort(numstring);
int Integer 静态方法:parseInt(numstring)
long Long
float Float
double Double
char Character
Boolean Boolean
基本数据类型对象包装类:都有 XXX parseXXX 方法
只有一个类型没有parse方法:Character ;
基本数据类型对象包装类的最常见作用:
就是用于基本数据类型和字符串类型之间做转换
基本数据类型转成字符串。
1.基本数据类型+"";
2.基本数据类型.toString(基本数据类型值);
如: 34+"";或者Integer.toString(34);就是将34整数变成"34"。
字符串转成基本数据类型。
用途很多,如填写信息时添加年龄,文本框中接收的几乎都是字符串,这时就需要将字符串类型转换成基本数据类型。
【parse 转换】
![黑马程序员_复习_Day09 - 九五二七 - 今天](http://img2.ph.126.net/uJblUVgS5OcJ_Dpy7ZAd_w==/3679722370638843476.png)
xxx a = Xxx.parseXxx(String);
int a = Integer.parseInt("123");
double b = Double.parseDouble("12.23");
boolean b = Boolean.parseBoolean("true");
Integer i = new Integer("123");
int num = i.intValue();//intValue是非静态方法,parseXXX是静态的
JDK1.5版本以后出现的新特性。
![黑马程序员_复习_Day09 - 九五二七 - 今天](http://img0.ph.126.net/wp5MjJusVjcqdmPJDLFwdA==/6608710296259470603.png)