您的位置:首页 > 移动开发 > Objective-C

Java常见API-object、string、StringBuffer

2017-10-30 00:14 387 查看

一、Object类

Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。所有类在创建对象的时候,最终找的父类就是Object。
equals方法与toString方法是最常见的两种Object类方法。


1.boolean equles(Object obj)

equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals方法内部使用的就是==比较运算符。
在开发中要比较两个对象是否相同,经常会根据对象中的属性值进行比较,也就是在开发经常需要子类重写equals方法根据对象的属性值进行比较。


/*
描述人这个类,并定义功能根据年龄判断是否是同龄人
由于要根据指定类的属性进行比较,这时只要覆盖Object中的equals方法
在方法体中根据类的属性值进行比较
*/
class Person extends Object{
int age ;
//复写父类的equals方法,实现自己的比较方式
public boolean equals(Object obj) {
//判断当前调用equals方法的对象和传递进来的对象是否是同一个
if(this == obj){
return true;
}
//判断传递进来的对象是否是Person类型
if(!(obj instanceof Person)){
return false;
}
//将obj向下转型为Perosn引用,访问其属性
Person p = (Person)obj;
return this.age == p.age;
}
}


注意:在复写Object中的equals方法时,一定要注意public boolean equals(Object obj)的参数是Object类型,在调用对象的属性时,一定要进行类型转换,在转换之前必须进行类型判断。

2.String toString()

toString()方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。
由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。


class Person extends Object{
int age ;
//根据Person类的属性重写toString方法
public String toString() {
return "Person [age=" + age + "]";
}
}


二、 String类

查阅API发现说字符串是常量;它们的值在创建之后不能更改,这是什么意思呢?   其实就是说一旦这个字符串确定了,那么就会在内存区域中就生成了这个字符串。字符串本身不能改变,但str变量中记录的地址值是可以改变的。


1.string类的创建

字符串有大量的重载的构造方法。通过String类的构造方法可以完成字符串对象的创建。


String s1 = new String(); //创建String对象,字符串中没有内容

byte[] bys = new byte[]{97,98,99,100};
String s2 = new String(bys); // 创建String对象,把数组元素作为字符串的内容
String s3 = new String(bys, 1, 3); //创建String对象,把一部分数组元素作为字符串的内容,参数offset为数组元素的起始索引位置,参数length为要几个元素

char[] chs = new char[]{’a’,’b’,’c’,’d’,’e’};
String s4 = new String(chs); //创建String对象,把数组元素作为字符串的内容
String s5 = new String(chs, 0, 3);//创建String对象,把一部分数组元素作为字符串的内容,参数offset为数组元素的起始索引位置,参数count为要几个元素

String s6 = new String(“abc”); //创建String对象,字符串内容为abc


2.常用方法

/*获取长度*/
int length()

/*获取部分字符串*/
String substring(int beginIndex)
String subString(int beginIndex,int endIndex)

/*查找*/
//字符串是否以指定字符串开头\结尾
boolean startsWith(String prefix)
boolean endsWith(String suffix)
//字符串中是否包含另一个字符串
boolean contains(CharSequence s)
int indexOf(String str)
//将字符串转成一个字符数组。或者字节数组。
char toCharArray()
byte[] str.getBytes()
//判断两个字符串中的内容是否相同
boolean equals(Object obj)
boolean equalsIgnoreCase(String anotherString)
//判断该字符串的内容是否为空的字符串
boolean isEmpty()
//获取该字符串中指定位置上的字符
char charAt(int index)

/*修改*/
//大小写转化
String toLowerCase() //字符串转成小写
String toUpperCase() //字符串转成大写
//替换
String repalce(char oldChar, char newChar) //将字符串中的老字符,替换为新字符
String repalce(String old, String newstr) //将字符串中的老字符串,替换为新字符串
//去掉字符串两端空格
String trim()


三 、StringBuffer类

在学习String类时,API中说字符串缓冲区支持可变的字符串,什么是字符串缓冲区呢?接下来我们来研究下字符串缓冲区。

查阅StringBuffer的API,StringBuffer又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。

原来StringBuffer是个字符串的缓冲区,即就是它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。


常用方法:

//在末尾追加新数据
public StringBuffer append(String str)

//在指定位置插入新数据
public StringBuffer insert(int offset,String str)

//删除指定位置上的字符
public StringBuffer deleteCharAt(int index)

//删除指定范围内的多个字符
public StringBuffer delete(int start,int end)

//将指定范围内的多个字符 用给定的字符串替换
public StringBuffer replace(int start,int end,String str)

//将字符串缓冲区的内容反转  如"abc"----"cba"
public StringBuffer reverse()

//从指定位置开始,到末尾结束,截取该字符串缓冲区,返回新字符串
public String substring(int start)

//从指定位置开始,到指定位置结束,截取该字符串缓冲区,返回新字符串
public String substring(int start,int end)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐