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

后端项目java中字符串、集合、日期时间常用方法

我这里只介绍了项目中最常用的哈,比如像集合有很多,但我们最常用的就是ArrayList。

然后我这里会以javascript中的字符串、数组的方法为基准来实现,有些方法js和java会有些区别也会介绍 

字符串

每次修改 String 对象都会创建一个新的对象,而 StringBuffer 可以在同一个对象上进行修改,这可以提高性能并减少内存消耗。StringBuffer对象可以被修改,并且不会创建新的对象,这使得它在需要频繁修改字符串内容的情况下更加高效

StringBuffer

 如果项目中碰到需要频繁修改的字符串建议先将字符串转为StringBuffer:

1. String转StringBuffer

String str = "12345";
StringBuffer bufStr = new StringBuffer(str);
System.out.println(bufStr);

2. 追加

StringBuffer buffer = new StringBuffer();
// 追加
buffer.append("1");
buffer.append("3");
buffer.append("4");
buffer.append("5");

3. 插入 (从第几个位置插入元素)

buffer.insert(1, "2");

4. 截取(包前不包后 类似于js的slice)

注意:这里的返回值为String类型而不是StringBuffer 

String substring = buffer.substring(1, 4); // 234

5. 反转

StringBuffer reverseBuffer = buffer.reverse(); // 54321

6. StringBuffer转为String 

String s = buffer.toString();

String 

1. 转集合 (js中的split)

// 转集合(使用split方法先转为数组再转为集合)
List<String> strings = Arrays.asList(str.split(" ")); // 使用空格切分
System.out.println(strings); // [Hello, World]

2. 截取 (js中的slice)

String substring = str.substring(0, 5);

3. 获取索引(js中的IndexOf) 

int ellIndex = str.indexOf("ell"); // 1

4. 获取最后一个索引(js中的lastIndexOf) 

int ellLastIndex = str.lastIndexOf("ell");

5. 判断以什么开头(同js的startsWith) 

boolean isFirstHello = str.startsWith("Hello"); // true

6. 判断以什么结尾(同js的endsWith) 

boolean isLastHello = str.endsWith("World"); // true

7. 字符串替换

这里需要注意一下

不同于前端的是:

java中的replace方法会把字符串中所有字符都替换,这相当于js中的replaceAll方法。

java中的replaceFirst方法只会替换第一个字符,这相当于js中的replace方法。

java中还提供了replaceAll方法,这也是替换所有,不过它适用于基于正则表达式的复杂替换需求,提供更大的灵活性。

String replace = str.replaceFirst("l", "哈哈"); // He哈哈lo World
String replace1 = str.replace("l", "哈哈"); // He哈哈哈哈o Wor哈哈d

8. 去除首位空格 

String str1 = "  w f t  ";
String trim = str1.trim(); // w f t

ArrayList集合 

再说集合之前,我们先简单说一下java中的数组

数组

1. 创建数组

int[] numbers = {1, 2, 3, 4, 5}; // 直接初始化
String[] names = {"Alice", "Bob", "Charlie"}; // 字符串数组初始化

2. 访问和修改数组元素 

int[] numbers = {1, 2, 3, 4, 5};
System.out.println(numbers[0]); // 输出: 1
numbers[0] = 10; // 修改第一个元素
System.out.println(numbers[0]); // 输出: 10

3. 获取数组长度 

int[] numbers = {1, 2, 3, 4, 5};
System.out.println("Array length: " + numbers.length); // 输出: Array length: 5

4. 遍历数组

4.1 使用 for 循环
int[] numbers = {1, 2, 3, 4, 5};
for (int i = 0; i < numbers.length; i++) {System.out.println(numbers[i]);
}
4.2 使用增强型 for 循环(for-each)
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {System.out.println(num);
}

5. 常用方法

Java 提供了 java.util.Arrays 类,其中包含了许多静态方法来操作数组。以下是一些常用的工具方法:

  • Arrays.toString(array):将数组转换为字符串表示形式。

    int[] numbers = {1, 2, 3, 4, 5};
    System.out.println(Arrays.toString(numbers)); // 输出: [1, 2, 3, 4, 5]
  • Arrays.sort(array):对数组进行排序,默认是升序排列。

    int[] numbers = {5, 3, 1, 4, 2};
    Arrays.sort(numbers);
    System.out.println(Arrays.toString(numbers)); // 输出: [1, 2, 3, 4, 5]
  • Arrays.fill(array, value):用指定的值填充数组的所有元素。

    int[] numbers = new int[5];
    Arrays.fill(numbers, 7);
    System.out.println(Arrays.toString(numbers)); // 输出: [7, 7, 7, 7, 7]
  • Arrays.binarySearch(array, key):在已排序的数组中查找指定的值。如果找到则返回索引,否则返回负数。

    int[] numbers = {1, 2, 3, 4, 5};
    int index = Arrays.binarySearch(numbers, 3);
    System.out.println("Index

相关文章:

后端项目java中字符串、集合、日期时间常用方法

我这里只介绍了项目中最常用的哈,比如像集合有很多,但我们最常用的就是ArrayList。 然后我这里会以javascript中的字符串、数组的方法为基准来实现,有些方法js和java会有些区别也会介绍 字符串 每次修改 String 对象都会创建一个新的对象,而 StringBuffer 可以在同一个对象…...

【Spring事务】深入浅出Spring事务从原理到源码

什么是事务 保证业务操作完整性的一种数据库机制 &#xff08;driver 驱动&#xff09;事务特定 ACID A 原子性 &#xff08;多次操作 要不一起成功 要不一起失败 &#xff08;部分失败 savepoint&#xff09;&#xff09; C 一致性 &#xff08;事务开始时数据状态&#xff0c…...

vue.js滑动到顶便锁定位置

<template><div><div class"nav"></div><div class"searchBar" id"searchBar"><ul :class"searchBarFixed true ? isFixed :"> <li>区域<i class"iconfont icon-jiantouxia"…...

EdgeX Core Service 核心服务之 Core Command 命令

EdgeX Core Service 核心服务之 Core Command 命令 一、概述 Core-command(通常称为命令和控制微服务)可以代表以下角色向设备和传感器发出命令或动作: EdgeX Foundry中的其他微服务(例如,本地边缘分析或规则引擎微服务)EdgeX Foundry与同一系统上可能存在的其他应用程序…...

掌握常用HTML标签:创建个人简介网页

任务目标 理解HTML文档的基本结构&#xff0c;掌握常见的HTML标签及其用途&#xff0c;创建一个简单的个人简介网页。 学习内容脑图 #mermaid-svg-5GTdqH41gawr4v0h {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

音视频学习(二十五):ts

TS&#xff08;MPEG-TS&#xff0c;MPEG Transport Stream&#xff09; 是一种广泛应用于流媒体传输和存储的容器格式。它最早由 MPEG&#xff08;Moving Picture Experts Group&#xff09;组织制定&#xff0c;用于视频和音频的压缩编码。在 HLS&#xff08;HTTP Live Stream…...

10. 虚拟机VMware Workstation Pro下共享Ubuntu和Win11文件夹

本文记录当前最新版虚拟机VMware Workstation Pro&#xff08;2024.12&#xff09;如何在win11下共享文件&#xff0c;以实现Windows与Ubuntu互传文件的目的。 1. 创建共享文件夹 1.1 先关闭虚拟机的客户机&#xff0c;打开虚拟机设置 1.2 在虚拟机设置界面找到“选项”->“…...

单元测试mock框架Mockito

为了继续改进 Mockito 并进一步改善单元测试体验&#xff0c;我们希望您升级到 2.1.0&#xff01;Mockito 遵循语义版本控制&#xff0c;仅在主要版本升级时包含重大更改。在库的生命周期中&#xff0c;重大更改是推出一组全新功能所必需的&#xff0c;这些功能会改变现有行为甚…...

Python从0到100(七十八):神经网络--从0开始搭建全连接网络和CNN网络

前言&#xff1a; 零基础学Python&#xff1a;Python从0到100最新最全教程。 想做这件事情很久了&#xff0c;这次我更新了自己所写过的所有博客&#xff0c;汇集成了Python从0到100&#xff0c;共一百节课&#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…...

2024多模态大模型综述最新总结

摘要 随着人工智能技术的快速发展&#xff0c;多模态大模型&#xff08;MLLM&#xff09;已成为研究的新热点。这些模型以强大的大型语言模型&#xff08;LLM&#xff09;为基础&#xff0c;能够处理和理解多种模态信息&#xff0c;如文本、图像、视频和音频。本文综述了MLLM的…...

Redis——缓存穿透

文章目录 1. 问题介绍1.1 定义1.2 举例 2. 解决方案2.1 方案一&#xff1a;空值缓存2.1.1 做法2.1.2 举例2.1.3 示例代码2.1.4 优点2.1.5 缺点 2.2 方案二&#xff1a;布隆过滤器2.2.1 思想2.2.2 做法2.2.3 示例代码2.2.4 优点2.2.5 缺点 2.3 方案三&#xff1a;限流3. 总结 1.…...

1.gitlab 服务器搭建流程

前提条件&#xff1a; 一、服务器硬件水平 搭建gitlab服务器最低配置要求2核4G,低于这个配置的服务器运行效果很差。 gitlab官网&#xff1a;https://about.gitlab.com/ 下载地址&#xff1a;gitlab/gitlab-ce - Packages packages.gitlab.com 本机ubuntu 二、安装依赖 su…...

McDonald‘s Event-Driven Architecture 麦当劳事件驱动架构

原文链接 1 mcdonalds-technical-blog/ 原文链接 2 mcdonalds-technical-blog/ 麦当劳在异步、事务性和分析性处理用例中使用跨技术栈的事件&#xff0c;包括移动订单进度跟踪和向客户发送营销通信&#xff08;交易和促销&#xff09;。 统一事件平台&#xff08;unified eve…...

GTID详解

概念和组成 1&#xff0c;全局事务表示&#xff1a;global transaction identifiers 2, GTID和事务一一对应&#xff0c;并且全局唯一 3&#xff0c;一个GTID在一个服务器上只执行一次 4&#xff0c;mysql 5.6.5开始支持 组成 GTID server_uuid:transaction_id 如&#xf…...

图解HTTP-HTTP状态码

状态码 状态码的职责是当客户端向服务器端发送请求时&#xff0c;描述返回的请求结果。 类别原因短语1XXInformational(信息状态码)接收的请求正在处理2XXSuccess&#xff08;成功状态码&#xff09;请求正常处理完毕4XXRedirection &#xff08;重定向状态码&#xff09;需要…...

sh cmake-linux.sh -- --skip-license --prefix = $MY_INSTALL_DIR

本文来自天工AI --------- 命令用于安装CMake的脚本&#xff0c;其中--skip-license参数表示跳过许可协议的显示&#xff0c;--prefix参数指定了CMake的安装目录。$MYINSTALLDIR是一个环境变量&#xff0c;应该在运行命令之前设置为您想要安装CMake的目录。 -------- sh xx…...

MySQL 在window免安装启动

复制my.ini文件 初始化命令&#xff1a;mysqld --initialize --console 执行启动bat&#xff1a;启动mysql.bat 主要命令是&#xff1a;mysqld --standalone 免密码启动mysql&#xff1a; mysqld --defaults-file"D:\xxx\soft\mysql-8.0.40-winx64\my.ini" …...

[JavaScript] 我该怎么去写一个canvas游戏

首先你得知道canvas的基础语法&#xff0c;此处不过多赘述. 一、如何更新视图 canvas里面有个clearRect方法&#xff0c;可以遮住画布中一个矩形部分. 但是你想这样做就难免会遮住一些本不该遮住的东西&#xff0c;因为它是一个矩形&#xff0c;并且你还要计算它的位置和尺寸…...

【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题

目录 为什么要结合项目与算法&#xff1f; 1. 蓝桥杯与《苍穹外卖》项目的结合 实例&#xff1a;基于蓝桥杯算法思想的订单配送路径规划 问题描述&#xff1a; 代码实现&#xff1a;使用动态规划解决旅行商问题 代码解析&#xff1a; 为什么这个题目与蓝桥杯相关&#x…...

python报错系列(16)--pyinstaller ????????

系列文章目录 文章目录 系列文章目录前言一、pyinstaller ????????1.报错如下2.安装pyinstaller3.报错如下&#xff1a;4.封装py文件为exe成功5.国内源 总结 前言 一、pyinstaller ??? 1.报错如下 PS D:\Users\gxcaoty\Desktop\性能覆盖率> pyinstaller37.exe…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...