import java.util.Locale;
/**
* @author 飞行札记
* @Version 1.0
*/
public class String_ {
public static void main(String[] args) {
//定义的是一个常量,其内存操作是在常量池中开辟了一块空间,
//并在其中放入了字符串abc,并通过atr对象指向这个常量对象。
String a = "hsp";
String str = "abc";
//第二行通过new关键字,定义了一个变量,并且在堆空间中开辟了一块内存,
//在其中放入字符串abc,并把内存地址赋予atr变量,这也叫做引用。
String b = new String("hsp");
System.out.println(a.equals(b));//true
//a指向常量池 b指向堆中的对象
System.out.println(a == b);//false
//intern()返回的是常量池的地址
System.out.println(a == b.intern());//true
System.out.println(b == b.intern());//false
String s = a + str;//指向堆
String s1 = "hspabc";//指向常量池
System.out.println(s == s1);//false
String s2 = "hsp" + "abc";//指向常量池
System.out.println(s1 == s2);//true
String myh = "HELLO";
String myh1 = "hello";
System.out.println(myh.toLowerCase(Locale.ROOT));//小写
System.out.println(myh1.toUpperCase(Locale.ROOT));//大写
System.out.println("===========");
String yi = "MiaYongHeng";
yi = yi.concat("周麦仪").concat("猪猪侠");
System.out.println(yi);
System.out.println(myh == myh1);//true
System.out.println(myh.equals(myh1));//true
System.out.println(myh.equalsIgnoreCase(myh1));//true
System.out.println(myh.charAt(4));//'o'
System.out.println(myh.length());//5
System.out.println(myh.indexOf('e'));//1,若找不到返回-1
System.out.println(myh.substring(1));//从1开始,截取后面的字符
System.out.println(myh.substring(1,3));//从1开始,截取到3
int num = 1;
String formatStr = "%s %d";
String information = String.format(formatStr,myh,num);
System.out.println(information);
}
}
字符串有大量修改,用StringBuffer(多线程)或者StringBuilder(单线程)
字符串很少修改,被多个对象引用,就用String
/**
* @author 飞行札记
* @Version 1.0
*/
public class StringBuffer02 {
public static void main(String[] args) {
//方式一
String str = "hello tom";
StringBuffer stringBuffer = new StringBuffer(str);
stringBuffer.append(1);
System.out.println(stringBuffer);
//方式二
StringBuffer stringBuffer1 = new StringBuffer();
stringBuffer1 = stringBuffer1.append(str);
//方式三
StringBuffer stringBuffer3 = new StringBuffer("韩顺平教育");
System.out.println(stringBuffer3.toString());
StringBuilder myh = new StringBuilder("myh");
myh.append(",,");
System.out.println(myh.toString());//myh,,
myh.delete(0,1);
System.out.println(myh.toString());//yh,,
myh.replace(2,3,"jay");
System.out.println(myh.toString());//yhjay,
System.out.println(myh.indexOf("jay"));//2
myh.insert(1," gdufe ");
System.out.println(myh);//y gdufe hjay,
}
}