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

news/2024/12/23 20:25:36 标签: java, 后端

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

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

字符串

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

StringBuffer

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

1. String转StringBuffer

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

2. 追加

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

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

java">buffer.insert(1, "2");

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

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

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

5. 反转

java">StringBuffer reverseBuffer = buffer.reverse(); // 54321

6. StringBuffer转为String 

java">String s = buffer.toString();

String 

1. 转集合 (js中的split)

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

2. 截取 (js中的slice)

java">String substring = str.substring(0, 5);

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

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

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

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

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

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

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

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

7. 字符串替换

这里需要注意一下

不同于前端的是:

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

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

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

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

8. 去除首位空格 

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

ArrayList集合 

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

数组

1. 创建数组

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

2. 访问和修改数组元素 

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

3. 获取数组长度 

java">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

http://www.niftyadmin.cn/n/5796955.html

相关文章

雅思真题短语梳理(八)

126员工流动率高 high staff turnover 127(多)负担一些工作任务 cover some duties / an increased workload 128不满 feel upset and resentful 129偏向性待遇 preferential treatment 130介入帮忙 step in and help 131切实的好处 tangible benefits 132挽留 staff retention…

《XML》教案 第1章 学习XML基础

《XML》教案 第1章 学习XML基础 主讲人&#xff1a; 回顾上一章: [10分钟] 2 课程知识点讲解&#xff1a; 2 while 循环和do…while 循环的区别&#xff1a;[15分钟] 3 for 循环的使用 &#xff1a;[5分钟] 4 嵌套 for 循环 &#xff1a;[20分钟] 5 本章总结 [10分钟] 6 考核点…

STM32F407 | Embedded IDE01 - vscode搭建Embedded IDE开发环境(支持JLINK、STLINK、DAPLINK)

导言 Embedded IDE官网:https://em-ide.com/docs/intro 我猜肯定有部分人使用SI Keil开发STM32项目&#xff0c;也有vscode Keil开发STM32程序。SI或vscode编写代码&#xff0c;然后切换Keil编译、下载、调试程序。有一段时间&#xff0c;我也是这么干的。但是&#xff0c;程…

linux美化命令行

linux美化命令行 centos8 安装和配置 Zsh 首先&#xff0c;安装 Zsh&#xff1a; sudo yum install -y zsh将默认 shell 更改为 Zsh&#xff1a; chsh -s $(which zsh)重新登录以使更改生效&#xff0c;或者使用以下命令启动 Zsh&#xff1a; zsh安装和配置 Oh My Zsh 下…

开发功能需求文档: Django 管理后台图片字段管理

开发功能需求文档: Django 管理后台图片字段管理 概述 本需求旨在详细描述在Django管理后台中实现图片字段管理功能的开发需求。该功能主要包括以下几点&#xff1a; 在新增数据时&#xff0c;上传并预览图片。 在修改已有数据时&#xff0c;显示当前图片及其文件名&#xff…

Android -- 双屏异显之方法二

Android – 双屏异显之方法二: DisplayManager PS: 1. 使用改方法主板需连接至少两个输出显示屏&#xff1b; 2. 副屏内部实现与MediaRouter下一样&#xff1b;使用方法 # 主屏activity内&#xff1a; private SecondDisplay secondDisplay;private void dualScreen3288() {D…

第二十六周学习周报

目录 摘要Abstract1 FOMM(一阶运动模型)1.1 基本框架1.2 实验1.3 代码分析 2 LSTM复习2.1 LSTM原理1.2 LSTM反向传播的数学推导 总结 摘要 本周的主要学习内容是FOMM模型&#xff0c;FOMM一种用于图像动画的技术&#xff0c;它能够通过给定的源图像和驱动视频生成逼真的动画序…

ARM 处理器平台 Ethernet Compliance 测试流程示例

By Toradex秦海 1). 简介 为了保证基于IEEE 802.3 协议设计的以太网设备接口可以互相兼容互联互通&#xff0c;需要进行 Ethernet Compliance 一致性测试&#xff0c;相关的技术原理说明请参考如下文章&#xff0c;本文就不赘述&#xff0c;主要展示基于 NXP i.MX8M Mini ARM…