String类方法介绍:

1.      substing(m,n) :字符截取,m开始的位置,n停止的位置(不包含n),截取后的字符串长度为m-n.

2.      :拼接,字符串拼接非字符串,非字符串都会被转换成字符串,双引号中的空格,也会被打印输出。

3.      不可变字符串:String类没有提供修改字符串的方法,但可以通过截取和拼接进行修改,也正因如此,所以String类对象称为不可变字符串,这样的有点是编译器可以让字符串共享。共享原理:字符串存放于公共的存储池中,字符串变量指向相应的字符串,当复制字符串变量时,复制的字符串和原字符串共享相同字符。

4.      基本类型的变量数据和对象的引用都是放在栈里面的,对象本身放在堆里面,显式的String常量放在常量池,String对象放在堆中。

   5. equals:检测字符串是否相等。注意,检测的可以是字符串变量也可以是字符串常量。

 * 注意:一定不能使用 == 比较字符串是否相等,"=="只能检测是否字符串是否存放在相同位置,有可能将相同字符串放在不同的位置。

如果虚拟机始终共享相同字符串,就可以用==检测是否相等。

6.      equalsIgnoreCase:检测字符串是否相等并区分大小写.

 

-------------------------------------空串与null------------------------------------------

“”:空串,长度为0,内容为空的字符串,可以通过下面检测是否是空串

   1.If(str.length()==0)

   2. ifstr.equsl(“”)

 

Null:String变量可以存放null,表示没有任何对象与该变量有关联。检查该变量是否是null,可以通过:

1.      if(str= =null)

2.       


同时检测字符串是否是空串和null,可通过:

   If( str!=null && str.length()!=0)

 

注意:如果在一个值为null,上调用方法,会出错。

package Stay;

/**
 * @version V1.0
 * @author Oak String类常用方法介绍:
 *         1.substing:字符复制。
 *         2.+ :字符串拼接。
 *         3.不可变字符串:String类没有提供修改字符串的方法,但可以通过截取和拼接进行修改,
 *         也正因如此,所以String类对象称为不可变字符串,这样的有点是编译器可以让字符串共享。
 *         共享原理:字符串存放于公共的存储池中,字符串变量指向相应的字符串,当复制字符串变量时, 复制的字符串和原字符串共享相同字符。
 *         4.基本类型的变量数据和对象的引用都是放在栈里面的,对象本身放在堆里面, 显式的String常量放在常量池,String对象放在堆中。
 *         5.equals:检测字符串是否相等。注意,检测的可以是字符串变量也可以是字符串常量。
 *         注意:一定不能使用 == 比较字符串是否相等,"=="只能检测是否字符串是否存放在相同位置,有可能将相同字符串放在不同的位置。如果虚拟机始终共享相同字符串,就可以用==检测是否相等。
 *         6.equalsIgnoreCase:检测字符串是否相等并区分大小写.
 */
public class StringDemo {
	public static void main(String[] args) {
		String s1 = "Hello";
		String s2 = s1.substring(0, 3);
		String s3="Hel";
		System.out.println("String类方法介绍:");
		System.out.println("1.substing(参数m开始位置,参数n停止位置<不包含停止位置," + "复制后的字符串长度为m-n>):字符复制--->" + "    s2 = " + s2);
		System.out.println("2.+ :字符串拼接,字符串拼接非字符串,费字符串蒋被转换成字符串," + "双引号中的空格也会打印输出。---> 例如:马上空2个:    这前面有2个空格。");
		System.out.println("3.不可变字符串:String类中没有用于修改的方法," + "只能通过截取和拼接的方法实现,因此String类对象称为不可变字符串。"
				+ "--->例如上面截取的s2拼接成help!字符串:" + s1.substring(0, 3) + "p!");
		System.out.println("5.检测两个字符串变量字符相等:" + s1.equals(s2) + "     检测两个字符串常量是否相等:" + "hello".equals("hello")+"   字符串变量和字符串常量比较"+s1.equals("Hello"));
		System.out.println("6.比较字符串是否相等并区分大小写:"+s1.equalsIgnoreCase("hello"));
		System.out.println("7.通过==来比较,可能出现的问题,例如:"+"s2="+s2+",s3="+s3+",但s2==s3结果为"+(s2==s3));
	}
}