java高级_工具类_字符串类

来源:互联网 发布:php九九乘法表表格 编辑:程序博客网 时间:2024/06/08 10:56
 字符串类(十分重要)
String(字符串常量类)
利用常量池,每次赋值都会新创建空间容纳新的字符串,如果常量池中已有新字符串,则直接指向已有位置


String类是被final修饰的
String类中的value属性被final修饰的


final的含义(重要)
  final修饰类
不能被继承
  final修饰变量(成员属性)
常量值,一旦赋值不能被改变
  final修饰方法
不能被重写


(1)char c = str.charAt(int idx)
取得str对应idx位置的字符,如果位置超出了字符串的长度或者是负数,会抛出异常
(2)s1.equals(s2)
比较s1和s2两个字符串的内容是否一致  
(3)s1.equalsIgnoreCase(s2)
忽略大小写比较s1和s2两个字符串的内容是否一致
  
(4)s1.indexOf(s2)
取得字符串s2在字符串s1中第一次出现的位置,若s2在s1中不存在,得到-1
(5)s1.lastIndexOf(s2)
取得字符串s2在字符串s1中最后一次出现的位置,若s2在s1中不存在,得到-1
(6)isEmpty
java.lang.NullPointerException --  空指针异常
当程序调用了值为null的对象的属性或方法时,会抛出空指针异常


判断某个字符串变量是否有值时
if(str != null && !str.isEmpty()){
//字符串中有值
}

(7)length
返回某个字符串的字符个数(长度)
(8)replace和replaceAll
替换
s2 = s1.replace("a","b"); 用b替换s1中的所有a
(9)s2[] = s1.split(",")
将s1中所有字符,以“,”为分隔符,拆分成字符串数组




计算机1          计算机2


int[] a   -->    
              1,2,4,6,10


split(,) --> String[]  --> int[]
(10)substring
s1.substring(2); //从下标2位置起,截取字符串至结尾
                                           s1长度恰好为2,返回的是空字符串
  s1的长度不足2,抛出异常


s1.substring(2,5); 截取下标[2,5)位置的字符串
                                                    [2,4]
(11)trim
去掉字符串两端的多余空格
(12)toUpperCase和toLowerCase
toUpperCase:将所有字符转换成大写字母
toLowerCase:将所有字符转换成小写字母
------------------------------------------------------------------
 练习:1.在控制台上输入一个邮箱地址
                2.判断邮箱的地址是否合法
   (1) 地址不能为空
                    (2) 首字母不能是@, 尾字母不能是.
   (3) 有且仅有一个@  有且仅有一个.
                    (4) @必须在.之前且两者之间要有其他字符






StringBuffer(字符串变量类)
append:在字符串结尾追加新的内容


StringBuffer sb = new StringBuffer("a");
sb.append("b");
sb.append("cd");
sb.append(1);

-> "abcd1"


通过toString方法将拼接完的字符串进行输出




StringBuilder(字符串变量类)
append:在字符串结尾追加新的内容
操作方式与StringBuffer是一致的




String与StringBuffer的区别?(重要- 笔试面试)
String是字符串常量,StringBuffer是字符串变量
在做字符串拼接操作时,StringBuffer的效率要远高于String


StringBuffer与StringBuilder的区别
StringBuffer线程安全,效率比StirngBuilder低
StringBuilder线程不安全,效率比StirngBuffer高


StringBuilder的效率更高  在JDK1.5之后(含1.5)的版本才有的类
0 0
原创粉丝点击