String(字符串)
1、概念
String 是一个最终类----不能被继承
创建之后不能改变,可以被共享-----底层有一个不可改变的字符数组(最终数组)。
所有的常亮都要放到常量池-----字符串在常量池是地址的形式存在的,其他常量存储的就是值。
分析图:
图一:
图二:
图三:
图四:
所有的字符串都是String类的对象
2、字符串拼接和StringBuilder拼接谁更高效?
2) 时间----字符串拼接100000个字符串花费3420ms, StringBuiler 拼接1000000个字符串花费15ms
如果要拼接多个字符串优先选择StringBuilder来进行拼接
StringBuilder 执行效率高但是线程不安全;StringBuffer执行效率低但是线程安全。
StringBuffer jdk1.0 StringBuilder jdk 1.5
3、重要方法
(1)chatAt()----根据下标值返回对应的字符,length—字符串长度
(2)toCharArray()----把字符串转成字符数组进行输出
(3)String(char[] value)—把参数字符数组的元素值进行复制到一个新的字符串底层的字符数组
(4)String(char[] value,int offset,int count)—把参数字符数组部分元素值复制到一个新的字符串底层的字符数组
Offset:复制开始的起始下标 count:复制的元素的个数
案例:
(1) 先有字符串,输入两个整数,对字符串进行截取
(2) 输入一个字符串,统计这个字符串中间数字的个数、字母的个数、其他符号的个数
(3) 输入一个字符串,把字符串中的所有数字进行求和
(4) 输入一个字符串,把字符串中的所有数字进行排序
(5) 输入一个字符串,统计每个字符在字符串出现的个数
5、compareTo()—返回两个字符串的字典差
例子: