一、字符串概念
由多个字符组成的串。
二、String中提供的常用方法
a)char charAt(int index);//返回指定索引处的char值。
b)boolean contains(String s);//返回数组是否包含该字符串
c)boolean endsWith(String s) ;//返回此字符串是否以s结尾
d)boolean startsWith(String s);//返回此字符串是否以s开头
e)int indexOf(String s);//返回此字符串第一次出现的下标;没有找到返回-1。
f)int lastIndexOf(String s);//返回此字符串最后一次出现的下标;如没有返回-1。
g)boolean isEmpty();//返回此字符串是否为null
h)int length();//返回此字符串的长度。
i)String replace(String old,String new);//将旧字符串内容全部替换成新字符串。
j)String[] split(String s);//以s分割原字符串 返回的是字符串数组。
k)String toUpperCase();//将小写转大写
l)String toLowerCase();//大写转小写
m)char[] toCharArray();//将字符串转换成字符数组。
三、String的特性
String字符串是不可变的。
在第一次定义一个abc字符串时,会在串池中开辟处一块空间存放abc,s1指
向的就是abc字符串;第二次定义的时候首先会在串池中寻找abc,找到了那么
s2也指向abc。
四、可变长字符串
a)StringBuffer :JDK1.0的类 线程安全 效率低
b)StringBuilder:JDK1.5的类 线程不安全 效率高
注意:
1.StringBuilder执行效率高于StringBuffer高于String.
2.String是一个常量,是不可变的,所以对于每一次+=赋值都会创建一个新的对象, StringBuffer和StringBuilder都是可变的,当进行字符串拼接时采用append方 法,在原来的基础上进行追加,所以性能比String要高,又因为StringBuffer 是 线程安全的而StringBuilder是线程非安全的,所以StringBuilder的效率高于 StringBuffer.
3.对于大数据量的字符串的拼接,采用StringBuffer,StringBuilder.
double/float的变量是以近似值存储数据,那么两个double/float类型的变量的计算结果也为近似值。
BigDecimal类作用:精确计算浮点数
构造方法:BigDecimal(String)
方法: BigDecimal add(BigDecimal bd); //加法运算
BigDecimal subtract(BigDecimal bd); //减法运算
BigDecimal multiply(BigDecimal bd); //乘法运算
BigDecimal divide(BigDecimal bd); //除法运算
注意:当divide()方法不能正常计算时,采用的是三参方法
bd1.divide(divisor, scale, roundingMode)
参数1:需要计算的数据
参数2:精确到小数点后的几位
参数3:精确计算的方式 BigDecimal.ROUND_HALF_UP代表的是四舍五入的方式。