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构造方法

在这里插入图片描述

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

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


s1s2abcs3WXYs4abc


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构造方法:

在这里插入图片描述

代码演示:

packageStringBuilder;
publicclassStringBuilder1 {
publicstaticvoidmain(String[] args) {
//无参StringBuildersb=newStringBuilder();
System.out.println("sb"+sb);
System.out.println("sb.length():"+sb.length());
//带参StringBuildersb2=newStringBuilder("hello");
System.out.println("sb2"+sb2);
System.out.println("sb2.length():"+sb2.length());
    }
}


运行结果:

sbsb.length():0sb2hellosb2.length():5


3.3 StringBuilder的添加和反转方法

在这里插入图片描述


代码演示:

packageStringBuilder;
publicclassStringBuilder2 {
publicstaticvoidmain(String[] args) {
StringBuildersb=newStringBuilder();
/*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);
    }
}

运行结果:

hellowjava100001avajwolleh


3.4 StringBuilder和String相互转换

(1)StringBuilder转换为String

在这里插入图片描述

(2)String转换为StringBuilder

在这里插入图片描述

代码演示:

packageStringBuilder;
publicclassStringBuilder3 {
publicstaticvoidmain(String[] args) {
//StringBuilder-String/*StringBuilder sb = new StringBuilder();sb.append("hellow");String s = sb.toString();System.out.println(s);*///String- StringBuilderStrings="he";
StringBuildersb=newStringBuilder(s);
System.out.println(sb);
    }
}

运行结果:

hellow
he


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

在这里插入图片描述


相关文章
|
5天前
|
Java
Java 替换字符串 replace replaceAll
【7月更文挑战第10天】Java 替换字符串 replace replaceAll
Java 替换字符串 replace  replaceAll
|
12天前
|
Java API 索引
Java中的字符串与字符操作详解
Java中的字符串与字符操作详解
|
19天前
|
Java 程序员
程序员必知:【java】判断字符串是否整数的三种方式,孰优孰劣请自行判断
程序员必知:【java】判断字符串是否整数的三种方式,孰优孰劣请自行判断
33 3
|
20天前
|
Java
java字符串分割split你用对了吗
java字符串分割split你用对了吗
15 1
|
21天前
|
Java API Apache
探讨Java中检测字符串是否包含数字和字母的技术
探讨Java中检测字符串是否包含数字和字母的技术
13 2
|
3天前
|
安全 Java
Java8 拼接字符串 StringJoiner
Java8 拼接字符串 StringJoiner
|
5天前
|
存储 安全 Java
Java面试题:请解释Java中的字符串和字符串缓冲区?
Java面试题:请解释Java中的字符串和字符串缓冲区?
6 0
|
6天前
|
Java Apache Maven
Java:commons-codec实现byte数组和16进制字符串转换
在上述代码中,`Hex.encodeHexString(bytes)`用于将byte数组转换为16进制字符串,`Hex.decodeHex(hexString)`用于将16进制字符串转换为byte数组。
10 0
|
7天前
|
Java Apache Maven
Java:commons-codec实现byte数组和16进制字符串转换
在上述代码中,`Hex.encodeHexString(bytes)`用于将byte数组转换为16进制字符串,`Hex.decodeHex(hexString)`用于将16进制字符串转换为byte数组。
14 0
|
10天前
|
Java API 索引
Java中的字符串与字符操作详解
Java中的字符串与字符操作详解