2.1 String类的方法
equals(Object anObject)
- 使用 == 作比较
基本类型:比较的是数据值是否相同
引用类型:比较的是地址值是否相同
- 字符串是对象,若需比较值是否相同得使用String类里面的 equals(Object anObject) 方法。(使用如下2.2)
length()
返回字符串的长度 ```java public class Demo { public static void main(String[] args) {
} }String str1 = "222" ;String str2 = "22ss2" ;String str3 = "33sadfaf3" ;System.out.println(str1.length()); //3System.out.println(str2.length()); //5System.out.println(str3.length()); //9
<a name="eIctk"></a>#### charAt(int index)输出字符串指定索引index对应的字符串```javapublic class Demo {public static void main(String[] args) {String str1 = "123" ;String str2 = "22ss2" ;String str3 = "33sadfaf3" ;System.out.println(str1.charAt(0)); // 1System.out.println(str2.charAt(2)); // sSystem.out.println(str3.charAt(3)); // a}}
valueOf(int i) //有重载
把int类型转为String ```java public class Demo {
public static void main(String[] args) {
int i = 100 ;String s = String.valueOf(i) ; //这是String里面的一个静态方法System.out.println(s);//把字符串解析为int类型String s1 = "666" ;int k = Integer.parseInt(s1) ; //Internet里面的静态方法 有重载
} }
<a name="QI7Ri"></a>### 2.2 String对象的特点- 通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址值不同。```javapublic class Demo {public static void main(String[] args) {String str1 = new String("222");String str2 = new String("222") ;String str3 = new String("333") ;System.out.println(str1==str2); //falseSystem.out.println(str1.equals(str2)); //trueSystem.out.println(str1.equals(str3)); //false}}
以 “” 方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立一个String对象,并且在字符串池中维护。 ```java public class Demo { public static void main(String[] args) {
String str1 = "222" ;String str2 = "222" ;String str3 = "333" ;System.out.println(str1==str2); //trueSystem.out.println(str1.equals(str2)); //trueSystem.out.println(str1==str3); //falseSystem.out.println(str1.equals(str3)); //false
} }
<a name="zKEXm"></a>### 2.3 StringBuilder概述- StringBuilder 是一个可变的字符串类,我们可以把它看成一个容器,这里的可变指的的是StringBuilder对象中的内容是可变的。- String:内容是不可变的; StringBuilder:内容是可变的。- 构造方法:public StringBuilder() :创建一个空白可变的字符串对象,不含任何内容。<br /> public StringBuilder(String str):根据str内容来创建可变字符串对象。<a name="JB8mR"></a>#### 2.3.1 内置方法- append(任意类型) :添加数据,返回对象本身- reverse() :返回相反的字符串序列```javapublic class Demo {public static void main(String[] args) {StringBuilder str1 = new StringBuilder() ;str1.append(222) ;System.out.println(str1); //222StringBuilder str4 = new StringBuilder("helloWorld") ;str4.reverse() ;System.out.println(str4); //dlroWolleh}}
2.3.2 StringBuilder和String相互转换
- 通过 toString() 就可以实现把StringBuilder转换为String
通过带参构造方法就可以实现把String转换为StringBuilder ```java public class Demo { public static void main(String[] args) {
StringBuilder str4 = new StringBuilder("helloWorld") ;System.out.println(str4 +" ---- "+str4.getClass());System.out.println(str4.toString()+" ---- "+str4.toString().getClass());
} }
运行结果: helloWorld —— class java.lang.StringBuilder helloWorld —— class java.lang.String ```
