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中的方法

在这里插入图片描述


相关文章
|
3月前
|
安全 Java API
【Java字符串操作秘籍】StringBuffer与StringBuilder的终极对决!
【8月更文挑战第25天】在Java中处理字符串时,经常需要修改字符串,但由于`String`对象的不可变性,频繁修改会导致内存浪费和性能下降。为此,Java提供了`StringBuffer`和`StringBuilder`两个类来操作可变字符串序列。`StringBuffer`是线程安全的,适用于多线程环境,但性能略低;`StringBuilder`非线程安全,但在单线程环境中性能更优。两者基本用法相似,通过`append`等方法构建和修改字符串。
65 1
|
22天前
|
存储 安全 Java
Java零基础-字符串详解
【10月更文挑战第18天】Java零基础教学篇,手把手实践教学!
97 60
|
12天前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
35 6
|
1月前
|
Java 数据库
案例一:去掉数据库某列中的所有英文,利用java正则表达式去做,核心:去掉字符串中的英文
这篇文章介绍了如何使用Java正则表达式从数据库某列中去除所有英文字符。
46 15
|
1月前
|
Java
JAVA易错点详解(数据类型转换、字符串与运算符)
JAVA易错点详解(数据类型转换、字符串与运算符)
50 4
|
2月前
|
Java 数据库
java小工具util系列1:日期和字符串转换工具
java小工具util系列1:日期和字符串转换工具
51 3
|
2月前
|
SQL Java 索引
java小工具util系列2:字符串工具
java小工具util系列2:字符串工具
18 2
|
2月前
|
存储 移动开发 Java
java核心之字符串与编码
java核心之字符串与编码
22 2
|
2月前
|
Java
Java实现:将带时区的时间字符串转换为LocalDateTime对象
通过上述方法,你可以将带时区的时间字符串准确地转换为 `LocalDateTime`对象,这对于处理不需要时区信息的日期和时间场景非常有用。
736 4