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()); //3
System.out.println(str2.length()); //5
System.out.println(str3.length()); //9
<a name="eIctk"></a>
#### charAt(int index)
输出字符串指定索引index对应的字符串
```java
public class Demo {
public static void main(String[] args) {
String str1 = "123" ;
String str2 = "22ss2" ;
String str3 = "33sadfaf3" ;
System.out.println(str1.charAt(0)); // 1
System.out.println(str2.charAt(2)); // s
System.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都会申请一个内存空间,虽然内容相同,但是地址值不同。
```java
public 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); //false
System.out.println(str1.equals(str2)); //true
System.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); //true
System.out.println(str1.equals(str2)); //true
System.out.println(str1==str3); //false
System.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() :返回相反的字符串序列
```java
public class Demo {
public static void main(String[] args) {
StringBuilder str1 = new StringBuilder() ;
str1.append(222) ;
System.out.println(str1); //222
StringBuilder 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 ```