类名:包装类集合(八种基本数据类型的包装类)Byte、Short、Integer、Long、Float、Double类(父类Number)、Boolean、Character类(父类Object)
父类Number方法(了解)
方法名 | 作用 |
---|---|
byte byteValue() | 以 byte 形式返回指定的数值 |
abstract double doubleValue() | 以 double 形式返回指定的数值 |
abstract float floatValue() | 以 float 形式返回指定的数值 |
abstract int intValue() | 以 int形式返回指定的数值 |
abstract long longValue() | 以 long形式返回指定的数值 |
short shortValue() | 以 short形式返回指定的数值 |
注意: 这些方法所有的数字包装类的子类都有,这些方法是负责 拆箱 的,JDK1.5之后支持自动装箱与自动拆箱。 即包装类对象与基本数据类型之间可以随意切换。但是有个要求,仅限于对应的类型之间,所以上面的方法就不经常使用了,了解!!!
包装类的构造方法
Integer构造方法 |
---|
Integer(int value):传入一个int类型的vlaue,将其包装为Integer类型 |
Integer(String s):传入一个字符串类型的s,将其转为Integer类型(注意:字符串内容需是int类型范围的整数组成)() |
注意:
-
Byte、Short、Long、Float、Double、Boolean的构造方法和Integer的构造方法一样。!!!
-
Character只有一个构造方法
Character构造方法 Character(char value):传入一个char类型的value,将其包装为Character类型 -
Float比Integer多一个构造方法
Float构造方法 Float(double value):传入一个double类型的value,将其包装为Float类型
Integer类方法
方法名 | 作用 |
---|---|
static Integer decode(String nm) | 将String转成Integer |
static int compare(int x, int y) | 比较两个数是否相等;相等返回0;前大后小返回1;后大前小返回-1 |
static int signum(int i) | 符号函数;负数返回-1;正数返回1;0返回0 |
static String toBinaryString(int i) | 将i转成二进制(未举例) |
static String toHexString(int i) | 将i转成十六进制(未举例) |
static String toOctalString(int i ) | 将i转成八进制(未举例) |
常用方法 | |
static int parseInt(String s) | 字符串转int |
String toString() | Integer转String |
static Integer valueOf(int i) | 返回表示指定的int值的Integer实例,类似于Integer构造方法 |
static Integer valueOf(String s) | 返回一个保存指定值的Integer对象(参数String类型,类似于Integer构造方法) |
注意: Byte、Short、Long、Float、Double、Boolean照葫芦画瓢,方法差不多相同。
Character类方法
方法名 | 作用 |
---|---|
char charValue() | 将Character转成char |
int compareTo(Character anther) | 判断两个Character是否相等;相等返回0;前大后小返回1;后大前小返回-1 |
常用方法 | |
String toString() | 将Character转成String |
static boolean isDigit(char ch) | 判断ch是不是数字 |
static boolean isLetter(char ch) | 判断ch是不是字母 |
static boolean isLetterOrDigit(char ch) | 判断ch是不是字母或数字 |
static boolean isLowerCase(char ch) | 判断ch是不是小写字母 |
static boolean isUpperCase(char ch) | 判断ch是不是大写字母 |
static boolean isSpaceChar(char ch) | 判断ch是不是空格 |
static Character valueOf(char c) | 将char转成Character |
类名:String类
String类构造方法
String类构造方法 |
---|
String s = "abc"; |
String s = new String("abc"); |
String s = new String(byte数组); |
String s = new String(byte数组, 起始下标, 长度); |
String s = new String(char数组); |
String s = new String(char数组, 起始下标, 长度); |
String类常用方法
方法 | 作用 |
---|---|
char charAt(int index) | 返回索引处的字符值 |
char[] toCharArray() | 将一个字符串转换成char数组 |
string toLowerCase() | 转换成小写英文字母 |
string toUpperCase() | 转换成大写英文字母 |
byte[] getBytes() | 得到字节数组 abcdef 变为 97 98 99 100... |
int indexOf(String str) | 得到某个子字符串在当前字符串第一次出现处的索引 |
int lastindexOf(String str) | 得到某个子字符串在当前字符串最后一次出现处的索引 |
string repleac(“ ”,“ ”) | 替换当前字符串中某个字符串为另外一个字符串,返回String |
string split(String str) | 以某个字符串拆分,返回String,(用Strirng来接收) |
string trim() | 去除字符串的前后空白,中间的不行 |
string subString(int beginindex) | 截取从索引出开始的子字符串,到字符串结尾 |
string subString(intbeginindex,endindex) | 截取从起始索引到终止索引的子字符串,前闭后开 |
int compareTo(String aontherString) | 比较两个字符串大小,字符依次比,前面比后面大,返回1;小,返回-1,等于,返回0,比到不一样的就结束,剩下的不比了。按照英文字母顺序比较 |
boolean equals(Object anobject) | 是否相等,比较的是值,返回true/false;看不出谁大谁小 |
boolean equalsIgnoreCase() | 是否相等,忽略大小写 |
boolean contaings(String str) | 是否包含str字符串,返回true/false |
boolean endsWith(String str) | 是否以某个字符串结尾,返回true/false |
boolean startsWith(String str) | 是否以某个字符串开始,返回true/false |
boolean isEmpty() | 是否为空字符串,底层调用的是length()方法,返回true/false;和null不一样(空指针异常) |
string concat(String str) | 将指定的字符串连接到该字符串的末尾 |
注意:String中只有一个静态方法,即不需要new对象的,直接使用类名点的方式进行调用; valueOf():将非字符串转换成字符串,底层调用toString方法,直接用类调用String.valueOf(随便写个啥),若传进去一个引用,该引用没有重写toString的话,输出的是引用的地址。
类名:StringBuffer类和StringBulid类
这两个类其实是基本一样的,为什么这么说呢?因为他们的用法是一样的的,但是唯一不一样的是StringBuffer是线程安全的,但是效率慢,StringBulid是线程不安全的,但是效率很高。
常用方法(这两个类大部分API是通用的):
方法 | 作用 |
---|---|
StringBuffer append() | 增删改查中的增功能,将实参(实参类型看具体情况,形参列表支持大部分数据类型)追加到当前StringBuffer对象所表示的字符序列的末尾。 |
char charAt(int index) | 在当前StringBuffer中取出位于index位置的元素(返回的是字符) |
StringBuffer delete(int start, int end) | 在当前StringBuffer对象中,删除[start,end)区间内的字符 |
StringBuffer deleteCharAt(int index) | 在当前StringBuffer对象中,删除位于index位置的的字符 |
int indexOf() | 增删改查中的查功能,查找指定的str(字符串)第一次出现的位置,并返回它所处的位置,找不到时返回-1(具体使用看形参列表) |
int length() | 返回当前StringBuffer所有字符的个数(StringBuffer的长度) |
String substring(int start) | 从当前StringBuffer中截取一段,区间:[start,length) |
String substring(int start, int end) | 从当前StringBuffer中截取一段,区间:[start,end) |
StringBuffer reverse() | 将当前StringBuffer反转 abc -> cba |
StringBuffer insert() | 插入字符串,插入到当前StringBuffer对象中,从某个位置插值(具体使用看形参列表) |
StringBuffer insert(int dstOffset, CharSequence s, int start, int end) | 将一个字符序列的一部分([start,end))插入到当前StringBuffer的offset位置 |
StringBuffer insert(int index, char[] str, int offset, int len) | 将char数组当中的一部元素插入到当前当前StringBuffer对象中,从index位置插值, index: 插入到哪个位置,offset: 从char[]的哪个位置开始取,len:从char[]当中取几个元素 |
StringBuffer replace(int start, int end, String str) | 替换当前StringBuffer的start到end置的字符串为str |
总结:String类、StringBuffer类、StringBuilder类
-
1、常量的声明,少量的字符串操作,用string。
-
2、在单线程情况下,如有大量的字符串操作情况,应该使用StringBuilder来操作字符串。不能使用
-
String"+"来拼接使用,耗费空间且执行效率低下(新建对象、JVM垃圾回收大量时间)。
-
3、在多线程情况下,如有大量的字符串操作情况,应该使用StringBuffer。
-
4.StringBuild不是线程安全的,StringBuffer和String都是线程安全的。
-
5.每次对String的操作都会生成新的String对象,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象
-
6.StringBuffer和stringbuild默认初始容量都是16。
-
String类、StringBuffer类、StringBuilder类互相转换:
-
String -> StringBuffer :new StringBuffer(str)
StringBuffer -> String : StringBuffer.toString()