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. if(str.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)); } }