String类
常用功能
- public int length() :返回此字符串的长度。
- public char charAt (int index) :返回指定索引处的 字符值。
- public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引。
- public int indexOf (int ch) :返回指定字符第一次出现在该字符串内的索引。
参数为int类型,
‘a’和 97一样的,97代表ASCII码表中的字符’a’ - public static String valueOf(基本数据类型int 变量名a):将一个int类型转换成字符串
- valueOf(Object obj)可以将任意的java数据类型转换字符串内容
- public String substring (int beginIndex) :返回一个子字符串,从指定索引开始默认截取字符串末尾
- public String substring (int beginIndex, int endIndex) :返回一个子字符串,从指定位置开始截取到指定位置结束。含beginIndex,不含endIndex。
- public String concat (String str) :拼接功能
普通拼接:
“” + 100 = “100” ;
String s = “hello” ;
String s1 = “world”
s.contact(s1) ; 使用功能拼接
字符串的转换功能:
-
public byte[] getBytes():将字符串转换成字节数组
-
public char[] toCharArray():将字符串转换成字符数组 (当前转换功能开发中使用居多)
-
valueOf(Obejct obj):将其他数据转成字符串
-
public String toUpperCase():将指定的字符串转换成大写
-
public String toLowerCase():将指定的字符串转换成小写
String类的其他功能:
- public String replace(char oldChar,char newChar):将字符串中的指定的字符替换成新的字符
- public String replace(String oldStr,String newStr):替换指定字符串
- public String trim() :去除字符串的两端空格
- public int compareTo(String anotherString)按字典顺序比较两个字符串
StringBuffer类
StringBuffer:线程安全的可变字符序列!
- StringBuffer:线程安全的
- 线程安全------> 同步 ------> 执行效率低!
网站:银行的网站 (保证安全),医院平台 - StringBuilder类: 单线程程序中,会使用StringBuilder替代StringBuffer,执行效率高! (线程不安全的)
- 线程不安全----->不同步----->执行效率高
论坛网站
*StringBuffer的构造方法: - public StringBuffer() :创建一个字符串缓冲区(足够大,无限制的添加字符串内容),没有任何字符串,初始容量为16个字符
- public StringBuffer(int capacity):直接指定具体的字符串缓冲区的容量大小
- public StringBuffer(String str):构造一个带内容的字符串缓冲区,容量为16+当前str的长度 (常用)
获取功能:
- public int length() :由于字符串缓冲区StringBuffer存储都是字符串内容,获取字符缓冲区中的长度,就是获取字符串长度! (实际值)
- public int capacity():理论值(超过一定容量,系统会自动分配)
StringBuffer的添加功能:
- (开发中使用居多) public StringBuffer append(String str) :在字符串缓冲区中追加内容 ,返回StringBuffer本身(在字符串缓冲区中的末尾追加)
- public StringBuffer insert(int offset,String str):在指定的位置索引处,插入一个指定的字符串 (在指定的位置插入数据)
StringBuffer的删除功能
- public StringBuffer deleteCharAt(int index):删除指定索引处的字符,返回缓冲区本身
- public StringBuffer delete(int start, int end):删除从指定位置开始到指定位置结束的字符(包前不包后),返回缓冲区本身
StringBuffer的反转功能:
- public StringBuffer reverse() :将此字符串缓冲区中的字符串内容反转
StringBuffer的替换功能:
- public StringBuffer replace(int start,int end, String str):
- 从指定位置开始到指定位置结束替使用当前str替换内容,返回自己本身
截取功能:
- public String substring(int start,int end):从指定位置截取到指定位置结束(包前不包后)返回的一个新的字符串
- public String substring(int start)
StringBuffer和StringBuilder的区别?
- 共同点:都是可变的字符序列
- 前者:是一个线程安全的类, 同步的,线程角度来说,执行效率低
- 后者:是一个线程不安全的类,不同步的,线程角度来说,执行效率高
- 在单线程程序中,StringBuilder用来替代StringBuffer
StringBuffer和数组都属于容器,有什么区别?
- StringBuffer:构造的是一个字符串缓冲区,里面存储的内容都字符串内容,可变的字符序列
- 它的长度可以变化的!
- 数组:存储元素必须是同一种数据类型 int[] arr = {int类型的元素…} ;
- 数组的长度是固定的,不支持可变的!
- String:特点 一旦被赋值,其值不能改变!不支持可变的!
StringBuffer和String类型作为形式参数有什么区别?
- String是一种特殊的引用类型,它作为形式参数和基本数据类型作为形式参数是一样的!(经常会出现在面试题中!)
- StringBuffer它作为形式参数,和引用类型一样,形式参数的改变直接影响实际参数
基本类型包装类型概述
Integer 类在对象中包装了一个基本类型 int 的值.该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法
构造方法
public Integer(int value)
public Integer(String s)
Integer类成员方法
int类型和String类型的相互转换
int ------ String
public static Integer valueOf(int i)
public static Integer valueOf(String s)
public static String toString(int i)
String ------ int
public int intValue()
public static int parseInt(String s)
(通用方法…public static XXX paresXXX(String s) ;
String ---->long
Long.parseLong(String s)
String ----> Double
Double.parseDouble(String s) )
常用的基本进制转换
public static String toBinaryString(int i)
public static String toOctalString(int i)
public static String toHexString(int i)
jdk5以后,新特性:自动拆装箱
内存中:
自动拆卸
Integer -----------------------> 自动转换int类型
自动装箱
int类型 ---------------------->自动转换引用类型 :Integer