获取功能的方法
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:线程安全的可变字符序列!
线程: (JavaSE高级部分中讲)
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):删除从指定位置开始到指定位置结束的字符(包前不包后),返回缓冲区本身
类型相互转换
* String----StringBuffer
* StringBuffer ---->String
StringBuffer sb = new StringBuffer(s)
sb2.append(s)
String str = new String(buffer)
String str2 = buffer.toString() ;
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
为了方便基本类型和引用类型 类型转换,引出 关于基本数据类型的包装类类型
* 实际开发中
* 已知一个String类型数据 ,--- 基本类型的包装类类型 ----> 基本类型
*
* byte Byte
* short Short
* int Integer
* long Long
* float Float
* double Double
* char Character
* boolean Boolean
*
* Integer构造函数
Integer(int value) :将int类型构造成Integer类型
Integer(String s) :将字符串构造成Integer类型
类型转换
*
*int----->String
*
* String的静态功能:valueOf(int i) /Integer的静态功能toString(int i)
*String-- --int
* Integer的静态功能:
* public static int parseInt(String s) :开发中使用最多的!
*
*通用方法...public static XXX paresXXX(String s) ;
*
*String ---->long
* Long.parseLong(String s)
*
*String ----> Double
* Double.parseDouble(String s)
*
dk5以后,新特性:自动拆装箱
* 内存中:
* 自动拆卸
*Integer -----------------------> 自动转换int类型
*
* 自动装箱
*int类型 ---------------------->自动转换引用类型 :Integer