Java入门—字符串

简介: String的常用方法image.png以上是我们平时常用的方法,建议自己手动测试练习加以记忆,其他方法可以查阅文档。将字符串转换为byte数组示例代码:String name = "java 编程 基础";byte[] b = name.

String的常用方法

img_f2bd55b271eab42ec4d2771eea93f12d.png
image.png

以上是我们平时常用的方法,建议自己手动测试练习加以记忆,其他方法可以查阅文档。

将字符串转换为byte数组

示例代码:

String name = "java 编程 基础";
byte[] b = name.getBytes();
for(int e: b){
    System.out.print(e+" ");
}

输出结果:
106 97 118 97 32 -25 -68 -106 -25 -88 -117 32 -27 -97 -70 -25 -95 -128

在utf-8编码中,一个汉字是用三个字节去表示,所以上边输出为三个连续负数。


img_bd16c40cb6eaa19acdf3f3b275c17b10.png
image.png

每个字节为8位,最大值是不能超过127的,而汉字转换为字节后是超过127的,之后就会发生溢出,以负数的方式显示。

将byte数组转为字符串:

String e = new String(b);
System.out.println(e);

new String()方法可以传入编码方式,(gbk utf-8)

byte数组和字符串互转时,编码要相同。

==和equals方法的区别

String a = "allen";
String b = "allen";
String c = new String("allen");

System.out.println(a==b);
System.out.println(a==c);
System.out.println(a.equals(b));
System.out.println(a.equals(c));
  • 对于==, 如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;
    如果作用于引用类型的变量,则比较的是所指向的对象的地址
  • 对于equals :注意:equals方法不能作用于基本数据类型的变量如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。


    img_60f2aba9206b4ae2a9037a2d2a7cab98.png
    来源于慕课网.png

字符串的不可变性

String对象被创建后,是不可变的。
所谓的修改是创建了新的对象。原变量指向了新的对象。

字符串处理类StringBuilder

区别:StringBuilder 是可变的。
当频繁操作字符串时,建议使用 StringBuilder ,如果使用String,会产生很多中间变量,会在常量池产生很多废弃的数据。

StringBuilder 和 StringBuffer

二者基本相似,StringBuffer是线程安全的(相对来说速度慢),StringBuilder非线程安全,但是性能高。

四种构造方法:


img_208c02b4e4aa2e9990925760b9f444c7.png
image.png

如果文章对你有帮助记得点个赞~
关注作者后续更新不错过~

目录
相关文章
|
17天前
|
JSON NoSQL Java
Redis入门到通关之Java客户端SpringDataRedis(RedisTemplate)
Redis入门到通关之Java客户端SpringDataRedis(RedisTemplate)
33 0
|
18天前
|
Java
Java编程语言入门指南
Java编程语言入门指南
16 1
|
1天前
|
Java
Java获取字符串最后一位
【5月更文挑战第9天】Java获取字符串最后一位
15 5
|
2天前
|
SQL Java 关系型数据库
零基础轻松入门Java数据库连接(JDBC)
零基础轻松入门Java数据库连接(JDBC)
8 0
|
2天前
|
存储 安全 算法
Java一分钟之-Java集合框架入门:List接口与ArrayList
【5月更文挑战第10天】本文介绍了Java集合框架中的`List`接口和`ArrayList`实现类。`List`是有序集合,支持元素重复并能按索引访问。核心方法包括添加、删除、获取和设置元素。`ArrayList`基于动态数组,提供高效随机访问和自动扩容,但非线程安全。文章讨论了三个常见问题:索引越界、遍历时修改集合和并发修改,并给出避免策略。通过示例代码展示了基本操作和安全遍历删除。理解并正确使用`List`和`ArrayList`能提升程序效率和稳定性。
7 0
|
3天前
|
存储 Java 索引
【JAVA基础篇教学】第十一篇:Java中字符串操作详解
【JAVA基础篇教学】第十一篇:Java中字符串操作详解
|
3天前
|
Java
代码实例演示Java字符串与输入流互转
代码实例演示Java字符串与输入流互转
|
4天前
|
Java API 开发工具
java与Android开发入门指南
java与Android开发入门指南
11 0
|
4天前
|
Java
Java一分钟之-类与对象:面向对象编程入门
【5月更文挑战第8天】本文为Java面向对象编程的入门指南,介绍了类与对象的基础概念、常见问题及规避策略。文章通过代码示例展示了如何定义类,包括访问修饰符的适当使用、构造器的设计以及方法的封装。同时,讨论了对象创建与使用时可能遇到的内存泄漏、空指针异常和数据不一致等问题,并提供了相应的解决建议。学习OOP需注重理论与实践相结合,不断编写和优化代码。
26 1
|
5天前
|
Java 编译器 对象存储
java一分钟之Java入门:认识JDK与JVM
【5月更文挑战第7天】本文介绍了Java编程的基础——JDK和JVM。JDK是包含编译器、运行时环境、类库等的开发工具包,而JVM是Java平台的核心,负责执行字节码并实现跨平台运行。常见问题包括版本不匹配、环境变量配置错误、内存溢出和线程死锁。解决办法包括选择合适JDK版本、正确配置环境变量、调整JVM内存参数和避免线程死锁。通过代码示例展示了JVM内存管理和基本Java程序结构,帮助初学者更好地理解JDK和JVM在Java编程中的作用。
19 0