Java包装类、String类、StringBuffer类和StringBulid类方法

类名:包装类集合(八种基本数据类型的包装类)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()

上一篇:Java StringBuilder 和 String 相互转换


下一篇:JAVA的 StringBuffer类