String、StringBuffer 与 StringBuilder
**String 对象,以及方法
- StringBuffer StringBuilder
- StringBuffer: 字符串缓冲类,线程安全的可变字符序列。一个类似与String的字符串缓冲区
- StringBuilder: 一个可变的字符序列,此类提供一个与StringBuffer兼容的API,但不保障同步,线程不安全
package pm;
/**
*
* String 类的使用
*/
import java.util.Arrays;
public class StringDemo01 {
public static void main(String[]args){
String url = "www.baidu.com";
//charAt 返回值指定位置的字符
char a = url.charAt(2);//根据索引查到字符
System.out.println(a);
//indexOf 根据字符返回下标
int b = url.indexOf(".");//根据字符返回下标
System.out.println(b);
//lastindexOf 根据最后一次出现的字符,返回下标
int c = url.lastIndexOf(".");
System.out.println(c);
//字符串比较
String d = "hello";
String e = "hello1";
System.out.println(d.compareTo(e));
//字符串拼接
d = d.concat("word");
System.out.println(d);
//是否包含某个字符串
containsDemo();
//判断字符串是否相等
equalsDemo();
//判断前缀后缀是否相同
with();
//getBytes 把字符串转换车byte数组
getBytes();
//toCharArray 把字符串转换成char数组
toCharArray();
toLowerCase()转换成小写 toUpperCase()转换成大写
toCase();
trim 去除字符串前后的空格
trimDemo();
}
//trim 去除字符串前后的空格
public static void trimDemo(){
String url = " www.baidu.com ";
System.out.println("原字符串的长度:"+url.length());
String trim = url.trim();
System.out.println(trim);
System.out.println("去除空格后的字符串长度;"+trim.length());
}
//toLowerCase()转换成小写 toUpperCase()转换成大写
public static void toCase(){
String url = "HELLO WOERL";
String lowerCase = url.toLowerCase();
System.out.println(lowerCase);
String upperCase = url.toUpperCase();
System.out.println(upperCase);
}
//是否包含某个字串方法
public static void containsDemo(){
String url = "www.biadu.com";
System.out.println(url.contains("biadu"));
}
//判断字符串是否相等 关键字: equals equalsIgnoreCase
public static void equalsDemo(){
String url = "www.baidu.com";
String url1 = "www.BAIDU.com";
System.out.println(url.equals(url1));
System.out.println(url.equalsIgnoreCase(url1));
}
//判断前缀后缀是否相同 关键字;startsWith endsWinth
public static void with(){
String url = "www.baidu.com";
System.out.println(url.startsWith("ww"));
System.out.println(url.endsWith("om"));
}
//getBytes 把字符串转换车byte数组
public static void getBytes(){
String url = "abd";
byte[] bytes = url.getBytes();
System.out.println(Arrays.toString(bytes));
}
//toCharArray 把字符串转换成char数组
public static void toCharArray(){
String url = "abd";
char[] chars = url.toCharArray();
System.out.println(Arrays.toString(chars));
}
}
public class Test {
public static void main(String[] args) {
//String 的使用
String a = "a";
a = a+"b";//创建了3个String对象
//StringBuffer的使用
StringBuffer sb = new StringBuffer("a");
//向其内部追加
sb.append("b");
//向其内部插入,只允许前后多加1位
sb.insert(0, "{");
sb.insert(sb.length(), "f");
sb.insert(4,"45");
System.out.println(sb);
//删除某一位
sb.delete(0, 2);
System.out.println(sb);
//反转
sb.reverse();
System.out.println(sb);
//StringBuilder的使用
StringBuilder sb1 = new StringBuilder("d");
sb1.append("b");
sb1.insert(2, "[");
sb1.insert(0, "]");
sb1.delete(0,1);
System.out.println(sb1.capacity()); //默认字符长度
}
}
*** String和 StringBuffer StringBuilder 的去别
- String 表示一组不可变的字符序列。对于字符串的操作,将会创建新的字符串对象。 不适用与频繁操作字符串
- StringBuffer 线程安全的可变字符序列。对于字符的操作,将在其对象方法中完成,不会创建新的字符串对象, 适用于多线程操作
- StringBuilder 非线程安全的可变字符序列。对于字符的操作,将在其对象方法中完成,不会创建新的字符串对象, 适用于单线程操作