开发者社区> 五百万的大西瓜> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Java——字符串

简介: Java——字符串!
+关注继续查看

1. API

1.1 API概述

API(Application Programming Interface):应用程序编程接口

Java API:JDK中提供的各种功能的Java类

注意:调用方法的时候,如果方法有明确的返回值,用变量接收,可以手动完成,也可使用快捷键(Ctrl+Alt+V)

2. String

2.1 String概述

String类在Java.lang包下,使用的时候不需要导包;

String类代表字符串,Java程序中的所有字符串文字都被实现为此类的实例,即Java程序中所有的双引号字符串,都是String类的对象。

字符串的特点:

(1)字符串不可变,它们的值在创建后不能被更改

(2)虽然String的值是不可变的,但是可以被共享

(3)字符串在效果上相当于字符串数组(char[]),但是底层原理是字节数组(byte[])


2.2 String构造方法

在这里插入图片描述

推荐使用直接赋值的方式得到字符串对象。

package String;
public class StringDemo1 {
    public static void main(String[] args) {
        //public String();创建一个空白字符串对象,不含有任何内容
        String s1 = new String();
        System.out.println("s1"+s1);
        //public String(char[] chs);根据字符数组的内容,来创建字符串对象
        char[] chs = {'a','b','c'};
        String s2 = new String(chs);
        System.out.println("s2"+s2);
        //public String(byte[] bys);根据字符数组的内容,来创建字符串对象
        byte[] bys = {87,88,89};
        String s3 = new String(bys);
        System.out.println("s3"+s3);
        //String s = "abc";直接赋值的方式创建字符串对象,内容为abc
        String s4 = "abc";
        System.out.println("s4"+s4);
    }
}


s1
s2abc
s3WXY
s4abc


2.3 String对象的特点

(1)通过new创建的字符串对象,每一次new都会重新申请一个内存空间,虽然内容相同,但是地址值不同

在这里插入图片描述

(2)以“ ”方式给出的字符串,只要字符串序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立一个String对象,并在字符串池中维护

在这里插入图片描述


2.4 字符串的比较

使用==作比较:

(1)基本类型:比较的是**数据值**是否相同

(2)引用类型:比较的是**地址值**是否相同

字符串是对象,他比较内容是否相同,是通过一个方法来实现的:equals()

public boolean equals(Object anObject):将此字符串与指定对象进行比较,由于比较的是字符串对象,所以参数直接传递一个字符串。

在这里插入图片描述

在这里插入图片描述


2.5 通过帮助文档查看String中的方法

在这里插入图片描述


3. StringBuilder

3.1 StringBuilder概述

如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,即耗时,又浪费内存空间,而这种操作还不可避免。可以通过Java提供的StringBuilder来解决问题。

StringBuilder是一个可变的字符串类,把它看作一个容器(可变的指的是StringBuilder对象中的内容可变)

String、StringBuilder的区别:

String:内容是不可变的;

StringBuilder:内容是可变的


3.2 StringBuilder构造方法:

在这里插入图片描述

代码演示:

package StringBuilder;
public class StringBuilder1 {
    public static void main(String[] args) {
        //无参
        StringBuilder sb = new StringBuilder();
        System.out.println("sb"+sb);
        System.out.println("sb.length():"+sb.length());
        //带参
        StringBuilder sb2 = new StringBuilder("hello");
        System.out.println("sb2"+sb2);
        System.out.println("sb2.length():"+sb2.length());
    }
}


运行结果:

sb
sb.length():0
sb2hello
sb2.length():5


3.3 StringBuilder的添加和反转方法

在这里插入图片描述


代码演示:

package StringBuilder;
public class StringBuilder2 {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        /*
        StringBuilder sb2 = sb.append("hellow");
        System.out.println("sb"+sb);
        System.out.println("sb2"+sb2);
        System.out.println(sb==sb2);
         */
        /*
        sb.append("hellow");
        sb.append("java");
        sb.append(100);
        System.out.println(sb);
        //hellowjava100
         */
        //链式编程
        sb.append("hellow").append("java").append(100);
        System.out.println(sb);
        //反转
        sb.reverse();
        System.out.println(sb);
    }
}

运行结果:

hellowjava100
001avajwolleh


3.4 StringBuilder和String相互转换

(1)StringBuilder转换为String

在这里插入图片描述

(2)String转换为StringBuilder

在这里插入图片描述

代码演示:

package StringBuilder;
public class StringBuilder3 {
    public static void main(String[] args) {
        //StringBuilder-String
       /*
        StringBuilder sb = new StringBuilder();
        sb.append("hellow");
        String s = sb.toString();
        System.out.println(s);
        */
       //String- StringBuilder
       String s ="he";
       StringBuilder sb = new StringBuilder(s);
        System.out.println(sb);
    }
}

运行结果:

hellow
he


3.5 通过帮助文档查看StringBuilder中的方法

在这里插入图片描述


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用Java进行Clob转String字符串
使用Java进行Clob转String字符串
0 0
Java获取字符串Md5值
Java获取字符串Md5值
0 0
用java实现遍历一个字符串中的每一个字母
用java实现遍历一个字符串中的每一个字母
0 0
【Java实用技术】字符串的拆分怎么最快?
本文是《【Java实用技术】字符串的拆分用什么方法好?》的姊妹篇,拆分方法最常用,使用看似简单但也有很多复杂的细节要注意,今天我们就来聊一聊字符串拆分怎么最快?
0 0
判断字符串是否回文(Java语言)
判断字符串是否回文(Java语言)
0 0
Java面试题2:Java字符串篇
String属于引用数据类型,由于被final修饰,所以String是不可变的,JVM使用字符串池来存储所有的字符串对象。
0 0
字符串的排列(java算法)
字符串的排列(java算法)
0 0
Java细节:为什么字符串是不可变的?
Java细节:为什么字符串是不可变的?
0 0
Java基础String字符串存储原理
Java基础String字符串存储原理
0 0
+关注
五百万的大西瓜
给你五百万,拿去买西瓜~
文章
问答
文章排行榜
最热
最新
相关电子书
更多
JAVA 应用排查全景图
立即下载
Java工程师必读手册
立即下载
Java应用提速(速度与激情)
立即下载