零基础学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<String>, 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 ): 将此字符串与指定对象进行比较,由于我们比较的是字符串对象,所以参数直接传递一个字符串

猜你喜欢

转载自blog.csdn.net/m0_68089732/article/details/124129024