JAVA String类

Posted viperqy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA String类相关的知识,希望对你有一定的参考价值。

String类


 

String类的概述

String由多个字符组成的一串数据

字符串其本质是一个字符数组

字符串是常量,一旦被赋值就不能改变


创建字符串对象的两种方式

String s1 = new String("hello"); //构造方法

String s2 = "hello"; //直接赋值方式

其中的区别

技术图片

 

    == 的意义:

      基本数据类型:比较的是基本数据类型的值是否相同

      引用数据类型:比较的是引用数据类型的地址值是否相同


String类的判断方法

    equals(   ) 比较字符串内容是否相同

    equalsIgnoreCase(   )比较字符串的内容是否相同忽略大小写

    startsWith( String  s   ) 判断字符串对象是否以 s  开头

    endsWith( String  s   ) 判断字符串对象是否以 s  结尾

 public static void main(String[] args) 
        String s1 = "hello";
        String s2 = "hello";
        String s3 = "Hello";

        System.out.println(s1.equals(s2));
        System.out.println(s1.equalsIgnoreCase(s3));
        System.out.println(s3.startsWith("hell"));
        System.out.println(s1.endsWith("llo"));
    

运行结果:

true   true   false   true

String类的获取方法

    length(  )获取字符串的长度,也就是字符的个数

    charAt( int index ) 获取指定索引处的字符

    indexOf(String s ) 获取s在字符串对象中第一次出现的索引

    substring(int start):从start开始截取字符串

    substring(int start,int end):从start开始,到end结束截取字符串。【start,end)

public static void main(String[] args) 
        String s = "hello world";
        System.out.println(s.length());
        System.out.println("--------------");
        System.out.println(s.charAt(4));
        System.out.println(s.indexOf("l"));
        System.out.println(s.substring(7,9));
        System.out.println(s.substring(5));
    

运行结果:

11    o     2      or        world

String类的转换方法

    char[] toCharArray():把字符串转换为字符数组

    String toLowerCase():把字符串转换为小写字符串

    String toUpperCase():把字符串转换为大写字符串

public static void main(String[] args) 
        //创建字符串对象
        String s = "abcde";
        
        //char[] toCharArray():把字符串转换为字符数组
        char[] chs = s.toCharArray();
        for(int x=0; x<chs.length; x++) 
            System.out.println(chs[x]);
        
        System.out.println("-----------");
        
        //String toLowerCase():把字符串转换为小写字符串
        System.out.println("HelloWorld".toLowerCase());
        //String toUpperCase():把字符串转换为大写字符串
        System.out.println("HelloWorld".toUpperCase());
    

运行结果:

a  b  c  d  e
-----------
helloworld
HELLOWORLD

String类的其他方法

     String trim() 去除字符串两端空格

    String[] split(String str)  按照指定符号分割字符串 


String、StringBuffer、StringBuilder类

区别:1、在这方面运行速度快慢为:StringBuilder > StringBuffer > String

        String最慢的原因:String为字符串常量,而StringBuilder和StringBuffer均为字符串变量

   2、在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的

   3、String:适用于少量的字符串操作的情况

      StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况

      StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况


 

StringBuilder类的常用方法

    capacity():返回当前容量 (理论值)

    length():返回长度(已经存储的字符个数)

    append(任意类型):添加数据,并返回自身对象

    reverse() 反转字符串功能

public static void main(String[] args) 
    //创建对象
    StringBuilder sb = new StringBuilder();
    System.out.println("sb:"+sb);
    System.out.println("sb.capacity():"+sb.capacity());
    System.out.println("sb.length():"+sb.length());

运行结果:

sb:
sb.capacity():16
sb.length():0

 

 

添加数据以及反转字符串

public static void main(String[] args) 
        StringBuilder sb = new StringBuilder();
        sb.append("hello");
        sb.append("wordld");

   //链式编程(因为sb返回的是个对象所以可以继续.方法)
   //sb.append("hello").append("world").append(true).append(100);

        System.out.println(sb);
        sb.reverse();
        System.out.println(sb);
    

运行结果:

hellowordld
dldrowolleh

StringBuilder和String的相互转换

 StringBuilder -- String

      public String toString():通过toString()就可以实现把StringBuilder转成String

 String -- StringBuilder

      StringBuilder(String str):通过构造方法就可以实现把String转成StringBuilder

 

以上是关于JAVA String类的主要内容,如果未能解决你的问题,请参考以下文章

Java 常用类之 String 类

String类

java工具类;String类

java工具类;String类

java 中string类怎么实现

八java常用类