一、String类型
特点:类型是用final修饰的,底层是字符数组和其对数组的一些操作,创建出来的对象是不可变的,但是声明的变量可以指向不同的对象,是JAVA语言常用的一种类型,在使用String时,提供了字符串常量池。
常量池:字符串的变量赋值时,先去常量池找,把对象地址给对象,找不到创建对象。相同的字符串在池中一旦存在,就不会产生新的该字符串了,以后出现都使用第一个。
如 String a="hello world";
String b=new String("hello world");
String c="hello world";
a==b 为false b==c 为true a.equals(b) 为true;
1、字符串读取
① length():字符串中包含的字符数 注:数组中的length为属性,字符串中的为方法。
② charAt(int index): 字符串某个下标的字符,若超出长度,就会提示下标越界异常。
③ indexOf(int ch) :返回的是某字符第一次出现的位置
indexOf(int ch,int fromIndex) :返回的是从fromIndex开始某字符第一次出现的位置。
indexOf(String str) :返回的是字符串第一次出现的下标位置,也可作为判断是否含有。
indexOf(String Str,int fromIndex):返回的是从fromIndex开始字符串第一次出现的位置。
lastIndexOf(int ch):某字符最后一次出现的下标
2、 字符串判断
① contains() :字符串中是否包含指定字符
② isEmpty() :判断字符串是否有内容
③ startsWith(String prefix) :判断字符串是否以某某开头
④ endsWith(String prefix) :判断字符是否以某某结尾
⑤equals(Object object)(覆写了Object类中的equals方法):判断内容是否相同
equalsIgnoreCase(String str):忽略大小写
3、字符串转换
① toCharArray() 转化为字符串数组
② getBytes() 转化为字节数组
③valueOf() 将基本数据类型转化成字符串
4、字符串替换
replace(oldChar,newChar):返回一个数组,是newChar替换数组中oldChar得到的
5、字符串分割
split(String regex):指定其中某一个字符或字符串,分割字符串
6、获取字符串子串
substring(int beginIndex) :从指定下标到结尾
substring(int beginIndex,int endIndex):从指定下标位置到结束下标位置
7、去空格、大小写
toUpperCase() 转化成大写
toLowerCase() 转换成小写
trim() 去除字符串两端的空格
二、Object类
在Java中所有的类都有一个公共的父类Object,一个类只要没有明显地继承一个类,则肯定是Object的子类。
Object类中的主要方法:
(1)public Object() 构造方法
(2)public boolean equals(Object obj) 普通方法 对象比较
(3)public int hashCode() 普通方法 取得Hash码
(4)public String toString() 普通方法 对象打印时调用
Object类提供的equals()方法默认的是比较地址,并不能对内容进行比较。
Object类在实际开发中的作用:Object类可以接收任意的引用数据类型,所以在很多的类库设计上都采用Object作为方法的参数,这样操作比较方便。
三、包装类
八种包装类与基本数据类型的关系:
int -- integer 、 char -- Character
short -- Short 、 long -- Long
float -- Float 、 double -- Double
boolean -- Boolean 、 byte -- Byte
包装类中的继承关系:
(1)Integer、Byte、Float、Double、Short、Long都属于Number类的子类,Number类本身提供一系列的返回以上6种基本数据类型的操作。
(2)Character属于Object的直接子类
(3)Boolean属于Object的直接子类
Number类是一个抽象类,主要是将数字包装类中的内容变为基本数据类型。
装箱与拆箱
装箱:将一个基本数据类型变为包装类的过程
拆箱:将一个包装类变成基本数据类型的过程
如:integer i=new Integer(int a) ; int temp=i.intValue();