API,String类
API:
Java 的API(API: Application(应用) Programming(程序) Interface(接口))
equals 方法:
用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。
Objeat类中的equals方法比的是地址
在应用时需要重写equals方法:
public boolean equals(Object obj) {
//向下转型
if(obj instanceof Pe){
Pe p=(Pe)obj;
return this.age==p.age;
}
return false;
}
toString 方法:
打印当前类的属性值
toString方法返回该对象的字符串地址,其实该字符串内容就是对象的类型+@+内存地址值。
由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。
调用对象时如果不写toString方法 会默认调用toString
String类
字符串是常量,它们的值在创建之后不能更改,字符串本身不能改变,但str变量中记录的地址值是可以改变的。
字符串的本质是一个字符的数组。
字符串在常量池中
ASCII码的值:
48~57为0到9十个阿拉伯数字;
65~90为26个大写英文字母;
97~122号为26个小写英文字母
byte数组转字符串方法:
String(byte[] a);
String(byte[] a,int b,int c);//b起始下标 c传几个数。
字节转字符,如果字节为正数走ascll码表 如果为负数则为汉字
格式:
byte[] bytes={48,65,97};
String s1=new String(bytes,1,2);//从1开始 传2个
System.out.println(s1);
字符型转字符串方法:
String(char[] c);
格式: String s2=new String(char[] c);
字符串转为byte数组:
byte[] b=s6.getBytes();
字符串转成字符数组:
char[] ch=s6.toCharArray();
获取字符串长度方法:
String s3="i love java";
System.out.println(s3.length());
截取字符串:
substring();
格式:
String s4="ilovejava";
s4.substring(3); //从第三个开始截取,包含尾不包含头
s4.substring(3,5); //从3开始到5结束
split("") //以什么截取,返回一个字符数组
判断字符串是否以谁开头 以谁结尾:
String s5="ilovejava";
s5.startsWith("i"); //开头 //返回一个布尔值
s5.endsWith("a"); //结尾 //返回一个布尔值
判断字符串中是否包含另一个字符串:
String s6="aagaasd";
System.out.println(s6.contains("aa"));//返回一个布尔值
获取该字符串在大字符串中的索引//下标:
System.out.println(s6.indexOf("ga"));
比较两个字符串内容:
//布尔值
格式:String s7="asd";
String s8="ASD";
s7.equals(s8);
s7.equalsIgnoreCase(s8);//忽略大小写比较
字母大小写转换方法:
小写转大写:toUpperCase();
大写转小写:toLowerCase();
格式:
String yi = s1.toUpperCase();
String er = s2.toLowerCase();
StringBuffer 字符串缓冲区:
StringBuffer又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。
原来StringBuffer是个字符串的缓冲区,它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。
添加字符:
append();
- append(“aaa”).appends(“sss”);//StringBuffer的链式调用
指定索引位置删除:
delete(1,2);//包含头不包含尾
指定位置插入:
insert(位置,要插入的内容);
指定位置替换:
replace(开始位置,结束位置,替换内容);
反转:
reverse();//倒叙输出