码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA String类

时间:2019-07-31 01:19:34      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:出现   int start   color   end   substring   eve   pre   对象   ever   

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类

标签:出现   int start   color   end   substring   eve   pre   对象   ever   

原文地址:https://www.cnblogs.com/viperqy/p/11273625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!