Java字符串详解
字符串即字符的组合,在Java中,字符串是一个类,所以我们见到的字符串都是对象。
常见创建字符串手段:
- 每当有一个字面值出现的时候,JVM虚拟机就会创建一个字符串
- 调用String的构造方法创建一个字符串对象
- 通过 加号进行字符串拼接也会创建新的字符串对象
String 被修饰为final,所以是不能被继承的。
如果不使用字符串格式化,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐。
使用字符串格式化,就可以简洁明了。
%s表示字符串,%d表示数字,%n表示换行。
字符串的常用API
length方法返回当前字符串的长度。
split
根据分隔符进行分隔
subString
截取子字符串
trim
去掉首尾空格
toLowerCase 全部变成小写
toUpperCase 全部变成大写
indexOf 判断字符或者子字符串出现的位置
contains 是否包含子字符串
replaceAll 替换所有的
replaceFirst 只替换第一个
字符串比较
一般说来,编译器每碰到一个字符串的字面值,就会创建一个新的对象。
如果都是字面值,那么内容相同,就是一样的字符串,字符串只要出现了一次,就会被放到字符串常量池中,下次如果使用了相同的字符串,就会直接拿来用。
使用equals进行字符串内容的比较,必须大小写一致
equalsIgnoreCase,忽略大小写判断内容是否一致
可变的字符串
StringBuffer和StringBuilder。
StringBuffer是线程安全的(synchronized),而 StringBuilder不是,所以StringBuilder效率更高,锁的获取和释放会带来开销。
课程代码:
package com.qingguoxy.test;import com.qingguoxy.entity.Luban;public class Test09 { public static void main(String[] args) { Luban luban = new Luban(); String name = luban.getName(); String object = new String("蓝Buff"); String action = "%s在偷敌方的%s!%d%n"; System.out.printf(action,name,object,666); int len = name.length(); //获取字符串的长度 System.out.println(len); String str = name "||兰陵王||之间的仇恨! "; String[] strSplit = str.split("\\|\\|"); for(int i = 0;i < strSplit.length;i ){ System.out.println(strSplit[i].trim()); } str = str.replaceFirst("\\|\\|",""); System.out.println(str); if(str.indexOf("鲁班1") != -1){ System.out.println("鲁班存在"); } System.out.println("===================="); String name1 = "鲁班"; String name2 = new String("鲁班") ; System.out.println(name1.equals(name2) ); StringBuffer sb = new StringBuffer(luban.getName()); sb.append("正在猥琐发育!~"); sb = new StringBuffer(sb.substring(0,2)); System.out.println(sb); }}
赞 (0)