java string isblank_java中node类

java string isblank_java中node类String字符串,是引用数据类型,非基本数据类型数组,引用数据类型:如类,接口,共同特点是,他们的字面值并不是一个“值”而是一段地址。基本数据类型:整数类型:byte,1字节,8位,最大存储数据量是255,存放的数据范围是-128~127之间。整数类型:short,2字节,16位,最大数据存储量是65536,数据范围是-32768~32767之间。整数类型:int,4字节,32位,最_java.lang.string

目录

一、基础知识回顾

二、字符串图示与字符串常量池

例1:

例2:

例3:

例4:创建对象问题

三、String类当中的构造方法

3.1 自动调用toString方法

3.2  传入数组

3.2.1 将bite数组中的一部分转化为字符串

3.2.2 将bite数组中的全部转化为字符串

3.2.3 将char数组全部转化为字符串

3.2.4将char数组部分转化为字符串

四、String类的常用方法

4.1  char  charAt(int index)

4.2 字符串之间的比较: int  compareTo(String anotherString)

4.3 判断是否包含某个字符串

4.4 判断当前字符串是否以某个字符串结尾

4.5 比较两个字符串是否相等(重要)

4.6  判断两个字符是否相等(忽略大小写)

4.7  将字符串转化成字节数组

4.8 判断某个子字符串在当前字符串中第一次出现处的索引

4.9  判断某个字符串是否是空

其他判断字符串为空的办法:StringUtils.isNotEmpty()

其他判断字符串为空的办法:StringUtils.isNotBlank()

4.10 判断某个子字符串在当前字符串中最后一次出现的索引

4.11 将字符串中的某一部分替换为另一部分

4.12 拆分字符串

4.13 判断某个字符串是否以某个子字符串开始

4.14 截取字符串

4.14.1从下标为index处开始截取字符串

4.14.2  截取某一段字符串

4.15 将字符串转换为自己字符数组

4.16 将字符串转化为小写

4.17 将字符串转化为大写

4.18 取出字符串的前后空白


一、基础知识回顾

  •    String字符串,是引用数据类型,非基本数据类型数组,

        引用数据类型:如类,接口,共同特点是,他们的字面值并不是一个“值”而是一段地址。

        基本数据类型:

          整数类型:byte,1字节,8位,最大存储数据量是255,存放的数据范围是-128~127之间。

          整数类型:short,2字节,16位,最大数据存储量是65536,数据范围是-32768~32767之间。

          整数类型:int,4字节,32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。

          整数类型:long,8字节,64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。

          浮点类型:float,4字节,32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。

          浮点类型:double,8字节,64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。

         字符型:char,2字节,16位,存储Unicode码,用单引号赋值。

         布尔型:boolean,只有true和false两个取值

  •     双引号括起来的均是字符串,比如“zhangjingqi”
  •     java中规定,双引号括起来的字符串是不可变的,即“abcd”变不成“abcdefg”

二、字符串图示与字符串常量池

例1:

下面我们就先来分析一下这两句代码

   这两行代码表示在底层创建了三个字符串对象,注意!就是三个,而不是两个,都存储在字符串常量池中。在字符串拼接时,会产生一个新的字符串在字符串常量池中。

   而且我们发现了有两个“abcdef”出现,这其实是一个,那有哪三个呢?abcdrf、xy、abcdefxy,所以一共是三个。

        String s1="abcdef";
        String s2="abcdef"+"xy";

虽然我们并没有直接创建String s3= new String(“xy”),但是相当于我们也是间接的创建了一个新的字符串,如下图所示: 只要是new对象,就一定会在堆内开辟一块空间

java string isblank_java中node类

为什么将字符串存放在一个“字符串常量池”中?

    因为字符串在实际开发中使用频繁,为了执行效率,所以把字符串放到了方法区的字符串常量池中。

例2:

java string isblank_java中node类

例3:

    第一个输出的是true,第二个输出的是false

        String s1="hello";
        String s2="hello";

        System.out.println(s1==s2);


        String x = new String("xyz");
        String y = new String("xyz");
        System.out.println(x==y);

原因: “==”比较的是变量中保存的内存地址,字符串的比较应该用equals方法

java string isblank_java中node类

例4:创建对象问题

      根据例3,下面一共创建了三个对象,s1,s2是在堆中的,“hello”是在字符串常量池中的

        String s1 = new String("hello");
        String s2 = new String("hello");

三、String类当中的构造方法

3.1 自动调用toString方法

        String s1 = new String("hello");
        System.out.println(s1);

 输出“hello”,自动调用了toString方法

3.2  传入数组

3.2.1 将bite数组中的一部分转化为字符串

第一个参数:字节数组

第二个参数:数组元素下标的起始位置

第三个元素:长度

作用:将bites数组中的一部分转化为字符串

String s1 = new String(bytes,1,2);

3.2.2 将bite数组中的全部转化为字符串

String s1 = new String(bytes);

3.2.3 将char数组全部转化为字符串

参数:字符数组

String s1 = new String(chars);

3.2.4将char数组部分转化为字符串

第一个参数:字符数组

第二个参数:数组元素下标的起始位置

第三个元素:长度

String s1 = new String(chars,1,2);

四、String类的常用方法

4.1  char  charAt(int index)

   返回值是char类型,index是下标,从0开始

        char c ="zhangjingqi".charAt(1);
        System.out.println(c);
        System.out.println("zhangjingqi".charAt(2));
        System.out.println("zhangjingqi".charAt(0));

4.2 字符串之间的比较: int  compareTo(String anotherString)

字符串之间比较不能使用大于号与小于号,我们可以使用 compareTo方法

两个字符串比较,最终会返回一个int类型的值

  • 0  表示相等
  • 1  表示大于
  • -1 表示小于
        int result ="abc".compareTo("abc");
        System.out.println(result);

        System.out.println("abcf".compareTo("abce"));

        System.out.println("abce".compareTo("abd"));

java string isblank_java中node类

 总结:按照字符串顺序比较两个字符串

比较规则:拿着字符串的第一个字母,和后面的字符串进行比较,若能分出大小便不再比较,如果分不出大小再比较下一个。字母越往后是越大的

4.3 判断是否包含某个字符串

  boolean contains(CharSequence s)

System.out.println("helloWord".contains("hello"));

java string isblank_java中node类

4.4 判断当前字符串是否以某个字符串结尾

boolean endsWith(String suffix)

System.out.println("text.java".endsWith(".java"));

4.5 比较两个字符串是否相等(重要)

boolean  equals (Object anObject)

比较两个字符串必须用equals  不能用==

这个方法不仅仅String类有,我们自定义类也可以使用,记得重写一些equals方法

System.out.println("text".equals("text"));

注意这个方法和compareTo方法的区别,compareTo是比较谁大谁小的

4.6  判断两个字符是否相等(忽略大小写)

  boolean equalsIgnoreCase(String anotherString)

System.out.println("text".equalsIgnoreCase("Text"));

很显然这段程序的执行结果就是true

4.7  将字符串转化成字节数组

byte[]  getBytes()

           byte[] bytes = "abcdef".getBytes();
           for(byte b : bytes){
               System.out.println(b);
           }

注意,这个地方是字节,不是字符!!!!是字节!!!!字节!!!!

java string isblank_java中node类

4.8 判断某个子字符串在当前字符串中第一次出现处的索引

int indexOf(String str)

注意!这个地方是从0开始的,所以这个地方输出的是5而不是6

System.out.println("orderjava++".indexOf("java"));

4.9  判断某个字符串是否是空

boolean isEmpty()

底层源码调用的是字符串的length()方法,判断length()是否是0

判断数组长度和字符串长度是不一样的

  •  判断数组长度:length属性
  • 判断字符串长度:length()方法
        System.out.println("".isEmpty());
        System.out.println("abc".isEmpty());

如果是空的话,就返回true,反之false

java string isblank_java中node类

其他判断字符串为空的办法:StringUtils.isNotEmpty()

 我们可以使用StringUtils工具类

        System.out.println(StringUtils.isNotEmpty(null) );
        System.out.println(StringUtils.isNotEmpty(""));
        System.out.println(StringUtils.isNotEmpty(" ")); //有一个空格
        System.out.println(StringUtils.isNotEmpty("abc"));

上面这个方法我们多使用在mybatis-plus的分页查询和条件查询中,如果是null或者是空字符串的话,就表现为false,我们在分页查询和条件查询中就不会再管这个字段了。

java string isblank_java中node类

其他判断字符串为空的办法:StringUtils.isNotBlank()

        System.out.println(StringUtils.isNotBlank(null) );
        System.out.println(StringUtils.isNotBlank(""));
        System.out.println( StringUtils.isNotBlank(" "));
        System.out.println(StringUtils.isNotBlank("\t \n \f \r"));

java string isblank_java中node类

4.10 判断某个子字符串在当前字符串中最后一次出现的索引

index lastIndexOf(String str)

下标是从0开始计数的

System.out.println("abcdefg".lastIndexOf("defg"));

java string isblank_java中node类

4.11 将字符串中的某一部分替换为另一部分

CharSquence是String类的父接口

String replace(CharSquence target,CharSquence replacement)

          String s1 = "http://localhost";
          String s2="6666";
        System.out.println(s1.replace("localhost",s2));

java string isblank_java中node类

4.12 拆分字符串

String[] split(String regex)

返回的类型是数组,必须用数组承接

        String[] ymd = "1980-10-11".split("-");
        for(String i : ymd){
            System.out.println(i);
        }
        

java string isblank_java中node类

4.13 判断某个字符串是否以某个子字符串开始

boolean startsWith()

System.out.println("http://www.baidu.com".startsWith("http"));

java string isblank_java中node类

4.14 截取字符串

4.14.1从下标为index处开始截取字符串

String subString(int index)

这个地方也同理,下表都是从0开始的

System.out.println("http://www.baidu.com".substring(6));

java string isblank_java中node类

4.14.2  截取某一段字符串

String subString(int beginIndex,int endIndex)

值得注意的是,这个地方,左边是闭区间,右边是开区间

        System.out.println("http://www.baidu.com".substring(6,8));

java string isblank_java中node类

4.15 将字符串转换为自己字符数组

char[] toCharArray()

        char[] chars="我是一个大好人".toCharArray();
        for(char i :chars){
            System.out.println(i);
        }
        

java string isblank_java中node类

4.16 将字符串转化为小写

String toLowerCase()


        String s= "abcdERFG";
        System.out.println(s.toLowerCase());

java string isblank_java中node类

4.17 将字符串转化为大写

 String toUpperCase()

String s= "abcdERFG";
System.out.println(s.toUpperCase());

java string isblank_java中node类

4.18 取出字符串的前后空白

String  trim()

        String s= "   abc   dERFG   ";
        System.out.println(s.trim());

java string isblank_java中node类

今天的文章java string isblank_java中node类分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/59169.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注