API String StringBuffer StringBuilder

如何查看帮助文档
API String StringBuffer StringBuilder
String 常用方法
构造方法 String(); String(byte[] bytes); String(“abc”); String("char[] chars);
String 空参构造方法。 String s1 = new String();
byte数组构造方法。 byte[] bs = {1,2,3}; String s2 = new String(bs);
char类型数 char[] chars = {‘a’,‘b’,‘c’}; String s3 = new String(chars);
String字符串构建 String s4 = new String(“abc”);
String 对象实例化对比:
String str = “abc”;// 直接使用常量赋值的字符串,常量值就在堆的字符串缓冲区。
String str1 = new String(“abc”);// 在堆中创建空间。
strstr1 System.out.println(strstr1); flase
str.equals(str1); System.out.println(str.equals(str1)); flase
abc在字符串缓冲池里是个常量
String str = “abc”; 表示字符串定义的常量值不会发生改变。
String 定义的字符串是唯一的不可变的。

String url = “www.baidu.com”;
charAt 返回指定位置的字符。
char a = url.charAt(4);// 根据索引差到字符。

indexOf 根据字符返回下标
int b = url.indexOf(".");

lastindexOf 根据最后一次出现的字符,返回下标。
int c = url.lastIndexOf(".");

字符串比较
String d = “hello”;
String e = “hello1”;
System.out.println(d.compareTo(e));

字符串拼接
d = d.concat(“word”);

trim 去除字符串前后的空格
String url1 = " www.baid u.com ";
System.out.println(“原字符串长度”+url1.length());
String trim = url1.trim();
System.out.println(trim);
System.out.println(“去除空格后的长度”+trim.length());

toLowerCase() 转换成小写 toUpperCase() 转换成大写
String url = “HELLO WORD”;
String lowerCase = url.toLowerCase();
String upperCase = url.toUpperCase();

toCharArray
String url = “abc”;
char[] charArray = url.toCharArray();

getBytes
String url = “abc”;
byte[] bytes = url.getBytes();

equals equalsIgnoreCase
String url = “www.baidu.com”;
String url1 = “WWW.baiDU.Com”; System.out.println(url.equals(url1)); System.out.println(url.equalsIgnoreCase(url1));// 忽略大小写比较

startsWith endsWith 判断前缀后缀是否相同。
String url = “www.baidu.com”; System.out.println(url.startsWith(“www”)); System.out.println(url.endsWith(“com”));

contains
String url = “www.baidu.com”; System.out.println(url.contains(“baid5”));

字符串截取。
String url = “http://www.baidu.com/news”;
// 获取http:
String substring = url.substring(7,10);// 从哪里开始,到哪里结束。 System.out.println(substring);
// 获取www,我有一个办法。
int index = url.indexOf("/");
int last = url.indexOf(".");
System.out.println(index);
System.out.println(last);
String substring2 = url.substring(index+2, last); System.out.println(substring2);
字符串切割
String str = “a.b.c.d.e.f”;
String[] split = str.split("\.");// 某些字符需要转义。 System.out.println(split[0]);
System.out.println(split[1]);
System.out.println(split[2]);
System.out.println(split[3]);

StringBuffer & StringBuilder
String 对象,以及方法。
StringBuffer StringBuilder
StringBuffer: 字符串缓冲类:程安全的可变字符序列。一个类似于 String 的字符串缓冲区
StringBuilder: 一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步.线程不安全。
String 和 StringBuffer StringBuilder 区别
String 表示一组不可变的字符序列。对于字符串的操作,将会创建新的字符串对象。 不适用于频繁操作字符串。
StringBuffer 线程安全的可变字符序列。对于字符的操作,将在其对象方法中完成,不会创建新的字符串对象。适用于多线程操作StringBuilder 非线程安全的可变字符序列。对于字符的操作,将在其对象方法中完成,不会创建新的字符串对象。适用于单线程操作。
StringBuffer的使用。
StringBuffer sb = new StringBuffer(“a”);
向其内部追加。
sb.append(“b”);
向其内部插入,只允许前后多加1位。
sb.insert(0, “[”);
sb.insert(sb.length(), “]”);
sb.insert(4, “z”);
删除某一位
sb.delete(0,1);
反转。
sb.reverse(); System.out.println(sb.toString());
问题:sb一共有几个对象?
StringBuilder 的使用
StringBuilder sb1 = new StringBuilder(“a”);
sb1.append(“b”);
sb1.insert(0, “{”);
sb1.insert(sb1.length(), “}”);
sb1.delete(0,1);
System.out.println(sb1.capacity() ); System.out.println(sb1.length() );