日志文章

2019-12-18 aflfte2011

String与StringBuilder的使用

package com.aflfte.test;
/**
 * String类型
 * @author jinhao
 *String为静太对象,付值后不可进行改变
 *若想改变String类型只能新建一个新的String对象
 *进行String类型进行比较时不可以用==号来进行,可使用equals方法以免出现错误
 */
public class TestString {
public static void main(String[] args) {
String str="asdfasd";
String str2=str.substring(2,5);
System.out.println(str);
System.out.println(str2);
String ss="hello"+"java";
String ss2="hellojava";
System.out.println(ss==ss2);//返回是true是因为编译器的优化,它会知道两个量的值并在比较时会认为这两个为同一个对象
String ss3="hello";
String ss4="java";
String ss5=ss3+ss4;
System.out.println(ss2==ss5);//返回false是因为编译器认为是两个量进行拼接并不知道量的内容所以比较时会被认为是两个不同的对象返回false
System.out.println(ss2.equals(ss5));//所以在进行字符串比较时最好使用equals方法对两个字符串的内容进行比较
}
}
//StringBuilder的使用
package com.aflfte.test;
/**
 * String方法
 * @author jinhao
 * StringBuilder被称之为可变字符序列,内容随时可做修改
 * StringBuilder与StringBuffer的区别在于
 * StringBuilder线程不安全,效率高;
 * StringBuffer线程安全,效率低
 * StringBuilder是常用的方法
 *
 */
public class TestStringBuilder {
public static void main(String[] args) {
StringBuilder sb=new StringBuilder("abcdefg");
System.out.println(Integer.toHexString(sb.hashCode()));//打印sb字符串的地址
System.out.println(sb);//打印sb字符串的内容
sb.setCharAt(2,'C');//修改字符串下标为2的字符为C(注意这里C为char类型)
System.out.println(Integer.toHexString(sb.hashCode()));//打印sb字符串的地址
System.out.println(sb);//打印sb字符串的内容

}
}



« 时间类的使用方法 | 包装类的自动装箱与自动拆箱»