0
点赞
收藏
分享

微信扫一扫

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

 

 

举报

相关推荐

0 条评论