一、API概述
什么是API?
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
API的使用
1.打开API帮助文档
2.单击显示出现目录等功能
3. 查看Java中的包以及包中的类
二、String类
1.概述
String是不变对象,即:字符串对象创建后,表示的字符内容不可变,若改变必定创建新对象
java对于字符串的优化:
字符串常量池,这是在堆内存中开辟的一块空间,用于保存所有使用字面量形式创建的字符串对象,当再次使用该字面量创建新的字符串时,会直接重用而不会再创建新的以达到节省内存开销的目的.
public class Text { public static void main(String[] args) { String s1="abcdef"; String s2=new String("xy"); String s3=s1+s2; System.out.println(s1+"\t"+s2+"\t"+s3); } }
2.常用构造方法:
i.String(char[] value) 分配一个新的 String,它代表了目前包含在字符数组参数字符序列。
ii.String(char[] value, int offset, int count) 分配一个包含字符与字符数组数组参数的新 String。
iii.String(String original) 初始化新创建的对象 String所以它代表相同的字符序列的说法;换句话说,新创建的字符串是一个副本的参数字符串。
iiii.String() 初始化新创建的 String对象,它代表了一个空字符序列。
3.String类常用的方法:
(1)String substring(int start,int end) 截取当前字符串中指定范围内的字符串
String s1 = newString("abcdef"); String str1=s1.substring(2,5); System.out.println(str1);
(2)charAt(int index) 获取当前字符串中指定位置对应的字符
String s1 = new String("abcdef"); char c1=s1.charAt(2); System.out.println(c1);
(3)compareTo(String anotherString) 比较两个字符串的字典。
String s1 = "abcdef"; String s2="abd"; int a=s1.compareTo(s2); System.out.println(a);
(4)String toUpperCase() String toLowerCase() 将当前字符串中的英文部分转换为全大写或全小写
String str="cvbdfe"; System.out.println(str.toUpperCase()); String str2="ACBDFE"; System.out.println(str2.toLowerCase());
(5)String trim() 去除当前字符串两侧的空白字符
String str = " avcd "; System.out.println(str.trim());
(6)int len=str.length(); 获取当前字符串的长度(字符个数)
String str="chsujahsnmje"; System.out.println(str.length());
(7)boolean startsWith(String str) boolean endsWith(String str) 判断字符串是否是以给定的字符串开始或结尾的
String str="acbvgdem"; System.out.println(str.startsWith("a")); System.out.println(str.endsWith("m"));
(8)equals(Object anObject)字符串相等比较,不忽略大小写
String s1="abcd"; String s2="abcd"; System.out.println(s1.equals(s2));
(9)equalsIgnoreCase(String anotherString)字符串相等比较,忽略大小写
String s1="abcd"; String s2="ABCd"; System.out.println(s1.equalsIgnoreCase(s2));
(10)indexOf(int ch) 取得指定字符在字符串的位置
String s1="abcd"; System.out.println(s1.indexOf("b"));
(11)lastIndexOf(int ch) 返回在指定字符的最后一个发生的字符串内的索引。
String s1="abcdbdchb"; System.out.println(s1.lastIndexOf("b"));
(12)replaceAll(String regex, String replacement)替换字符串中指定的内容
String str="我是中国人"; System.out.println(str.replaceAll("中国","陕西"));
(13)split(String regex) 根据指定的表达式拆分字符串
String str="abccba"; String[] s=str.split("c"); System.out.println(Arrays.toString(s));
(14). valueOf,将其他类型转换成字符串
System.out.println(String.valueOf(12)); System.out.println(String.valueOf('v')); System.out.println(String.valueOf(123456L)); System.out.println(String.valueOf(23.45F)); System.out.println(String.valueOf(123.95)); System.out.println(String.valueOf(true));
三、 StringBuffer 和 StringBuilder
1.StringBuffer
StringBuffer 称为字符串缓冲区,它的工作原理是:预先申请一块内存,存放字符序列,如果字符序列满了,会重新改变缓存区的大小,以容纳更多的字符序StringBuffer 是可变对象,这个是 String 最大的不同。
如果使用大量的字符串拼接时,使用StringBuffer类。(底层为初始化16个长度的byte数组)
1.常用方法:
//拼接字符串调用append();方法
//拼接字符串调用append();方法 StringBuffer sbStr = new StringBuffer(); sbStr.append("a"); sbStr.append("b"); System.out.println(sbStr);
2.StringBuilder
1.String的优化措施仅照顾重用性,因此频繁修改字符串会带来内存开销大,运行效率差的结果对此,java提供一个专门用于修改字符串的API
2.其内部维护一个可变的char数组,所有的修改都是在这个数组中进行的,因此开销小,性能好,并且其提供了
便于修改字符串的一系列方法,包括了增,删,改,插等基本操作
1.常用方法:
StringBuilder builder=new StringBuilder(); //拼接 builder.append("为了拯救世界!"); System.out.println(builder); //删除 builder.delete(0,2); System.out.println(builder); //插入 builder.insert(0,"我们"); System.out.println(builder); //修改 builder.replace(2,5,"改变世界"); System.out.println(builder);
为了拯救世界! 拯救世界! 我们拯救世界! 我们改变世界界!
3. StringBuffer 和 StringBuilder区别
StringBuffer中的方法有synchronized关键字修饰表示在多线程下是安全的StringBuilder线程不安全