零基础学java---字符串(API,String,StringBuilder)

简介: 零基础学java---字符串(API,String,StringBuilder)

1.API


1.1 API 概述


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


例:编写一个机器人程序去控制机器人踢足球,程序需要向机器人发出向前跑,向后跑,射门,抢球等各种指令。机器人厂商一定对提供一些用于控制机器人的接口类,这些类中定义好了操作机器人各种动作的方法。其实,这些接口类就是机器人厂商提供给应用程序的接口,大家把这一类称为API



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


1.2 帮助文档


CSDN上面有上传了同文档不能重复上传,如有需要可私信


2.String


2.1 String 概述


String 类在java.lang包下,所以使用的时候不需要导包



字符串特点:


*  字符串不可变,他们的值在创建后不能被更改


*  虽然String的值是不可变的,但是他们可以被共享


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


String 具体概述:
public final class String
extends Object
implements Serializable, Comparable, CharSequence
String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。例如:
     String str = "abc";
等效于:
     char data[] = {'a', 'b', 'c'};
     String str = new String(data);
下面给出了一些如何使用字符串的更多示例:
     System.out.println("abc");
     String cde = "cde";
     System.out.println("abc" + cde);
     String c = "abc".substring(2,3);
     String d = cde.substring(1, 2);
String 类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写。大小写映射基于 Character 类指定的 Unicode 标准版。
Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的,该方法由 Object 类定义,并可被 Java 中的所有类继承。有关字符串串联和转换的更多信息,请参阅 Gosling、Joy 和 Steele 合著的 The Java Language Specification。
除非另行说明,否则将 null 参数传递给此类中的构造方法或方法将抛出 NullPointerException。
String 表示一个 UTF-16 格式的字符串,其中的增补字符 由代理项对 表示(有关详细信息,请参阅 Character 类中的 Unicode 字符表示形式)。索引值是指 char 代码单元,因此增补字符在 String 中占用两个位置。
String 类提供处理 Unicode 代码点(即字符)和 Unicode 代码单元(即 char 值)的方法。


2.2 String构造方法



String
方法名:
public String()
初始化一个新创建的 String 对象,使其表示一个空字符序列。注意,由于 String 是不可变的,所以无需使用此构造方法。


方法名                                           说明
public String(char[] chs) 根据字符数组的内容,来创建字符串对象 
public String(byte[] bys) 根据字节数组的内容,来创建字符串对象 
String  s=“abc”;              直接赋值的方式创建字符串对象,内容就是abc


代码示例:


public class StringDemo01 {
    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 = {97,98,99};  //对应转化ASCII码
        String s3 = new String(bys);
        System.out.println("s3:"+s3);
        //String  s=“abc“直接赋值的方式创建字符串对象,内容就是abc
        String s4 = "abc";
        System.out.println("s4:"+s4);
    }
    }


控制台输出:


s1:
s2:abc
s3:abc
s4:abc


2.3 String对象的特点


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


char[ ]  chs  =  {'a','b','c'};
String  s1  =  new  String(chs);
String  s2  =  new  String(chs);


上面的代码中,JVM会首先创建一个字符数组,然后每一次new的时候都会有一个新的地址,只不过s1和s2参考的字符串内容是相同的


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


String s3  =  “abc”;
String  s4  =  "abc";


在上面的代码中,针对第一行代码,JVM会建立一个String对象房在字符串池中,并给s3参考;


第二行则让s4直接参考字符串池中的String对象,也就是说他们本质上是同一个对象


2.4 字符串的比较


使用== 作比较


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


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



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


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

目录
相关文章
|
2月前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
146 83
|
26天前
|
存储 JavaScript Java
Java 中的 String Pool 简介
本文介绍了 Java 中 String 对象及其存储机制 String Pool 的基本概念,包括字符串引用、构造方法中的内存分配、字符串文字与对象的区别、手工引用、垃圾清理、性能优化,以及 Java 9 中的压缩字符串特性。文章详细解析了 String 对象的初始化、内存使用及优化方法,帮助开发者更好地理解和使用 Java 中的字符串。
Java 中的 String Pool 简介
|
1月前
|
缓存 安全 Java
java 为什么 String 在 java 中是不可变的?
本文探讨了Java中String为何设计为不可变类型,从字符串池的高效利用、哈希码缓存、支持其他对象的安全使用、增强安全性以及线程安全等方面阐述了不可变性的优势。文中还通过具体代码示例解释了这些优点的实际应用。
java 为什么 String 在 java 中是不可变的?
|
2月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
61 26
|
26天前
|
存储 Java
Java 11 的String是如何优化存储的?
本文介绍了Java中字符串存储优化的原理和实现。通过判断字符串是否全为拉丁字符,使用`byte`代替`char`存储,以节省空间。具体实现涉及`compress`和`toBytes`方法,前者用于尝试压缩字符串,后者则按常规方式存储。代码示例展示了如何根据配置决定使用哪种存储方式。
|
2月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
66 8
|
API Windows
储存字符串的一组 API
在API函数GlobalAddAtom的帮助下可以通过windows信息传送一个字符串。这个函数返回一个数,可以被PostMessage (或SendMessage)中的 wParam 或 lParam 使用。发送方:wParam = GlobalAddAtom('string...')PostMessage(HWnd, WM_XYZ, wParam, 0)接收方:str = GlobalGe
971 0
|
23天前
|
人工智能 自然语言处理 API
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
谷歌推出的Multimodal Live API是一个支持多模态交互、低延迟实时互动的AI接口,能够处理文本、音频和视频输入,提供自然流畅的对话体验,适用于多种应用场景。
71 3
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
|
10天前
|
JSON 安全 API
淘宝商品详情API接口(item get pro接口概述)
淘宝商品详情API接口旨在帮助开发者获取淘宝商品的详细信息,包括商品标题、描述、价格、库存、销量、评价等。这些信息对于电商企业而言具有极高的价值,可用于商品信息展示、市场分析、价格比较等多种应用场景。
|
18天前
|
前端开发 API 数据库
Next 编写接口api
Next 编写接口api