当前位置: 首页 > news >正文

力扣刷题常用API总结 (1):字符串,字符数组

处理字符串的两种常用方法:toCharArray()charAt()的比较

比较总结

特性toCharArray()charAt()
返回值字符数组(char[]单个字符(char
内存占用创建一个新的字符数组,占用额外内存无额外内存占用
性能适合需要多次访问或修改字符的场景适合单次或少量字符访问的场景
适用场景遍历、修改、随机访问字符串中的字符访问字符串中的某个特定字符
字符串修改可以通过修改字符数组间接修改字符串不能直接修改字符串
代码示例char[] arr = text.toCharArray();char c = text.charAt(0);

选择建议

  • 如果需要遍历字符串中的所有字符修改字符,使用 toCharArray()
  • 如果只需要访问字符串中的某个字符少量字符,使用 charAt()

##比较字符串的内容常用方法: equals 方法

用于比较两个对象的内容是否相等。对于字符串(String),equals 方法可以直接比较字符串的内容。然而,对于字符数组(char[]),equals 方法的行为与字符串不同,因为它继承自 Object 类,默认比较的是引用是否相等,而不是内容是否相等。

字符数组的比较(char[])
字符数组是对象,但其 equals 方法没有重写,默认比较的是引用是否相等,而不是内容是否相等。

示例:

char[] arr1 = {'h', 'e', 'l', 'l', 'o'};
char[] arr2 = {'h', 'e', 'l', 'l', 'o'};
char[] arr3 = arr1;System.out.println(arr1.equals(arr2)); // false,引用不同
System.out.println(arr1.equals(arr3)); // true,引用相同

如何比较字符数组的内容?
如果需要比较两个字符数组的内容是否相等,可以使用以下方法:

方法 1:使用 Arrays.equals()
java.util.Arrays 类提供了一个静态方法 equals,用于比较两个数组的内容是否相等。

示例:

import java.util.Arrays;char[] arr1 = {'h', 'e', 'l', 'l', 'o'};
char[] arr2 = {'h', 'e', 'l', 'l', 'o'};System.out.println(Arrays.equals(arr1, arr2)); // true,内容相同

方法 2:手动比较
可以手动遍历两个数组,逐个比较每个元素。

示例:

public static boolean areEqual(char[] arr1, char[] arr2) {if (arr1.length != arr2.length) {return false;}for (int i = 0; i < arr1.length; i++) {if (arr1[i] != arr2[i]) {return false;}}return true;
}public static void main(String[] args) {char[] arr1 = {'h', 'e', 'l', 'l', 'o'};char[] arr2 = {'h', 'e', 'l', 'l', 'o'};System.out.println(areEqual(arr1, arr2)); // true,内容相同
}

总结
在这里插入图片描述

推荐使用
对于字符数组的内容比较,优先使用 Arrays.equals()。

转换为字符串的两种常用方法: valueOf(i)Integer.toString(i)

valueOf(i) 是 Java 中 String 类的一个静态方法,**用于将其他类型的数据(如 int、double、boolean 等)转换为字符串。**它的作用是返回参数的字符串表示形式。

  1. 方法定义
    valueOf 是一个重载方法,有多个版本,适用于不同的数据类型。以下是常用的几种形式:
public static String valueOf(int i)       // 将 int 转换为字符串
public static String valueOf(double d)    // 将 double 转换为字符串
public static String valueOf(boolean b)   // 将 boolean 转换为字符串
public static String valueOf(Object obj)  // 将对象转换为字符串
  1. 使用示例
    示例 :将 int 转换为字符串
int num = 123;
String str = String.valueOf(num); // 将整数 123 转换为字符串 "123"
System.out.println(str); // 输出 "123"
  1. valueOf(i) 的工作原理
    对于基本数据类型(如 int、double、boolean 等),valueOf 会将其转换为对应的字符串表示。

对于对象类型,valueOf 会调用对象的 toString() 方法,返回其字符串表示。

  1. valueOf(i) 与 Integer.toString(i) 的区别
    valueOf(i) 和 Integer.toString(i) 都可以将整数转换为字符串,但它们的实现方式略有不同:

String.valueOf(i) 内部调用了 Integer.toString(i)。

String.valueOf(i) 是一个通用的方法,适用于多种数据类型,而 Integer.toString(i) 是专门用于 int 类型的方法。

示例:

int num = 123;
String str1 = String.valueOf(num); // 使用 valueOf
String str2 = Integer.toString(num); // 使用 toString
System.out.println(str1.equals(str2)); // 输出 true,结果相同
  1. valueOf(i) 的应用场景
    将数字转换为字符串:

当需要将数字(如 int、double)与其他字符串拼接时,可以使用 valueOf。

示例:

int age = 25;
String message = "I am " + String.valueOf(age) + " years old.";
System.out.println(message); // 输出 "I am 25 years old."
  1. 注意事项
    空对象处理:

如果 valueOf 的参数是 null,它会返回字符串 “null”,而不是抛出异常。

示例:

Object obj = null;
String str = String.valueOf(obj);
System.out.println(str); // 输出 "null"
  1. 总结
    在这里插入图片描述

http://www.mrgr.cn/news/82968.html

相关文章:

  • 智能语音交互
  • ArmSoM RK3588/RK3576核心板,开发板网络设置
  • 【学Rust开发CAD】1 环境搭建
  • 图像篡改检测数据集修正(Image Tampering Detection Dataset)
  • 【C++】:浅析 “std::cout << std::endl”
  • stable diffusion安装mov2mov
  • 【简博士统计学习方法】第1章:3. 统计学习方法的三要素
  • 【简博士统计学习方法】第1章:4. 模型的评估与选择
  • SAP 采购-生产-销售-月结 流程
  • halcon三维点云数据处理(七)find_shape_model_3d_recompute_score
  • 【CPU】页,帧,页表,页表项,三级页表
  • 前端开发 vue 中如何实现 u-form 多个form表单同时校验
  • JavaScript 实现支持过期时间的数据缓存功能
  • vue2新增删除
  • FPGA 20 ,FPGA按键消抖功能解析与实现
  • centOS7
  • Android Studio创建新项目并引入第三方jar、aar库驱动NFC读写器读写IC卡
  • 【Qt】C++11 Lambda表达式
  • 【线性代数】通俗理解特征向量与特征值
  • Java Spring Boot实现基于URL + IP访问频率限制
  • 《Python趣味编程》专栏介绍与专栏目录
  • 虚表 —— 隐藏行(简单版)
  • 协作式 Saga 模式
  • MP4 与Fragmented MP4 (fMP4)的区别
  • Docker: 教程07 - ( 如何对 Docker 进行降级和升级)
  • STM32学习(十)