String类:创建方式与常用方法

创建方式分为:字面量创建与构造器对象创建,String类的特点是不可变性,

 1 package CommonClass;
 2 
 3 import org.junit.Test;
 4 
 5 /**
 6  * String类的使用:
 7  * 一:
 8  * 1:String类是final不可继承的太监类
 9  * 2:String类实现了Comparable接口,所以字符串可以比较大小
10  * 3:String类定义了final char[] value 用于存储字符串数据
11  * 4:String类代表不可变的字符序列,成为不可变性
12  *   体现: 1:对于字符串重新赋值时,需要重写指定内存区域,不可以在原有的基础上进行赋值
13  *         2:对于现有的字符串进行拼接操作时,也需要重新指定内存区域,
14  *         3:调用replace方法也是创建一个新的字符串,原有的字符串不会改变
15  ****************************
16  * 二:String类对象的创建:
17  *    1:String name="hpp";:通过字面量定义的方式
18  *    2:String s=new String(); 通过构造器的方式定义
19  *    3:String s1=new String(original value) 也是构造器
20  *    // String s1="abc" 与String s2=new String("abc")的区别:
21  *       s1 的abc放在字符串常量池中,s2的abc放在堆中
22  ****************************
23  * 三:String字面量的拼接:
24  *    结论:有变量名参与的拼接操作在堆空间中地址值不相等,两个字面量的拼接还在常量池中就相等
25  */
26 public class StringTest {
27    @Test
28     public  void test1(){
29        String s1="hp";
30        String s2="hpp";
31        s1="hpp";
32        System.out.println(s2==s1);
33        //拼接操作
34       String s3="huang";
35       String s4=s3+"132612";
36       System.out.println(s4);
37       //调用replace方法
38       String s5=s3.replace('h','p');
39       System.out.println(s5);
40    }
41 @Test
42    public  void test2(){
43       String name="123";//字面量定义的方式
44       String name1=new String("123");//构造器定义的方式
45       String name2=new String("123");
46       String name3=name+"hpp";
47       System.out.println(name==name1);//两种不同的实例化方式对象的地址值不一样
48       System.out.println(name1==name2);//两个对象的地址值是不一样的
49       System.out.println(name==name3);//对于有变量名参与的拼接地址值不一样
50 }
51 }

String类常用方法:length,replace替换,charAt获取指定位置的字符,isEmpty字符串是否为空,

                              tolowercase,touppercase转换大小写,compareto比较字符串大小:ASCII码

 

 1 /**
 2  * String类的常用方法:
 3  * 1:int length():获取字符串长度
 4  * 2:char charAt(index):获取指定位置上的字符
 5  * 3:boolean isEmpty():判断字符串时是否为空
 6  * 4:toLowercase():变成小写
 7  * 5:toUppercase():变成大写
 8  * 6:compareTo(String str2):比较两个字符串大小(比较ASCII码值)从前往后匹配,只要匹配到一个字符串不同就停止
 9  * 输出ASCII码的差值
10  * 7:boolean StartWith(String str):判断是否以指定的字符串为前缀
11  * 8:boolean EndsWith(String str):判断是否以指定的字符串为后缀
12  * 9:int indexOf(String str):从左往右返回指定字符串在当前字符串的索引位置
13  * 10:int lastIndexOf(String str):从右往左返回
14  * 11:String replace(oldChar'',newChar''):将字符串中指定的的单个字符全部替换
15  * 12:String replace(target"",replacement""):将字符串中指定的的字符串全部替换
16  * 13:
17  *
18  *
19  */
20 public class StringMethodsTest {
21     @Test
22     public  void test1(){
23         String s="Huang";//a=65,A=97
24         String s3="GuAn";
25         String ss="Huang132ang@";
26         System.out.println(ss.replace("ang","黄鹏"));
27         System.out.println(ss.startsWith("Hua"));
28         System.out.println(ss.indexOf("u"));
29         System.out.println(s.length());
30         System.out.println(s.charAt(4));
31         System.out.println(s.isEmpty());
32         String s1=s.toLowerCase();
33         String s2=s.toUpperCase();
34         System.out.println(s1+"\t"+s2);
35         System.out.println(s.compareTo(s3));
36     }
37 }

 

posted @ 2021-10-15 19:59  tiiiiii  阅读(317)  评论(0)    收藏  举报