首页 > 其他 > 详细

字符串String类

时间:2020-07-11 22:12:58      阅读:47      评论:0      收藏:0      [点我收藏+]

1.string类是属于java.lang.String:关于字符串处理的类,这个类封装了很多方法,用来支持字符串的操作

2.java.lang包里面的类是不需要导入的,而其他的包里面的类要采用import关键字导入才可以使用

3.创建字符串的常见3+1种方法:

            三种构造方法:

                        1).public String(),创建一个空白字符串,不含有任何内容

                        2).public String(char[] array) ,根据字符串的内容,来创建对于的字符串

                                 * char c[]={‘h‘,‘e‘,‘l‘,‘l‘,‘o‘};

                                 * String str=new String(c); //用字符数组创建字符串

                        3).public String(byte[] array) ,根据字节数组的内容,来创建对应的字符串

            一种直接创建:

                        4).String str;    //声明了对象,null指针,内容为空,不指向任何对象

                            String str="这是一个字符串";   //直接用字符串常量来初始化字符串

4.字符串运算符+ (字符串连接运算符):其他类型数据于字符串左右两边进行+时会自动转化成字符串(自左向右进行运算)

技术分享图片

5.字符串的比较:

                    字符串是引用数据类型,所以字符串的比较不能用==,而要使用String类的采用方法equals()进行判断

                 ( str1 == str2 //用于比较两个对象的引用是否相同(判断两个对象所存储的对象的首地址是否相同)即判断是否为同一个对象)

    比较值:1).【区分大小写】 str1.equals(str2) //表示判断str1和str2的内容(值)是否相同

                                                  "abc".equals(str2) //有常量的时候将常量写在前面

                   2).【忽略大小写】public boolean equalsIgnoreCase(String str)

技术分享图片

 

 6.字符串比较,在内存区进行解释:    

                          String str3="abc";
                          String str4="abc";

             * 1).因为字符串是引用数据类型,使用变量String str3是存放在栈内存当中的,且保存的是地址值,指向字符串常量池的对象
             * 2).在JVM堆内存当中有字符串常量池,字符串对象就在字符串常量池当中,同样保存的是地址值,指向"abc"byte字节数组
             * 3).而"abc"用到底层的byte字节数组进行表示,存放于字符串常量池之外的堆内存当中
             * 4).【只有】双引号直接写的字符串在常量池当中,那么String str4的就会到常量池在找,而正好常量池中有"abc"(str3),直接拿来用、

                          char[] charArray = {‘a‘,‘b‘,‘c‘};
                          String str5 = new String(charArray);

              * 5).char[] charArray存放于栈内存当中,其内存地址是指向是在常量池之外的堆内存当中的char型的数组
              * 6).new了就不在池当中了,根据(charArray),堆内存当中的char型的数组会转换成byte字节数组,
                       并且在堆内存当中创建String对象,其内存地址指向byte字节数组
              * 7).在栈内存的变量str5存放的内存地址指向堆内存的String对象
              * 【注意】直接new的对象不在常量池里

7.API当中说:Java程序中所有字符串字面值(如"abc")都作为此类的实例实现

   其实是说:程序当中所有的双引号字符串,都是String类的对象(就算没有new,也照样是)。

8.字符串的特点:

               * 1).字符串的内容永不改变。
               * 2).正是因为字符串的内容永不改变,所有字符串是可以共享使用的
               * 3).字符串效果上相当于是char[]字符数组,但是底层原理的byte[]字节数组

9.String类的常用方法:

         String类当中有哪些是获取的常用的方法:

             * 1).public int Length();
             * 获取字符串当中含有的字符个数,拿到字符串的长度。

             * 2).public String concat(String str);
             * 将当前字符串和参数字符串拼接成为返回值新的字符串

             * 3).public char charAt(int index);
             * 获取指定索引位置的单个字符。(索引从0开始)

             * 4).public int indexOf(String str);
             * 查找参数字符串在本字符串当中首次出现的索引位置,如果没有则返回-1值

        字符串的截取方式:
             * 1).public String substring(int index);
             * 截取从参数的位置一直到字符串末尾,放回新字符串

             * 2).public String substring(int begin,int end);
             * 截取从begin开始,一直到end结束,中间的字符串
             * 【备注】[begin,end)包含左边,不包含右边

        字符串中字符的替换:

             *public String replace(char oldChar, char newChar)

        字符串大小写的转换:

             *public String toLowerCase()     转换位小写

             *public String toUpperCase()     转换位大写

 

字符串String类

原文:https://www.cnblogs.com/JIA1314JJ/p/13285482.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!