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

Java的核心类库

引言

 

在Java编程中,熟练掌握常用类与对象操作是开发的基础。Java的核心类库提供了丰富的功能,可以帮助开发者高效地处理各种编程任务。本文将详细介绍Java字符串操作、集合框架、日期与时间处理等内容,并通过图表和表格进行总结与示范。

 

字符串操作

 

字符串类(String)

 

String类用于表示字符串,字符串是字符的序列,属于不变对象(immutable)。常用的字符串操作包括长度、拼接、比较、截取、替换等。

 

 

public class StringExample {public static void main(String[] args) {String str = "Hello, Java!";// 获取字符串长度int length = str.length();System.out.println("Length: " + length); // 输出:Length: 12// 字符串拼接String newStr = str.concat(" Welcome!");System.out.println("Concatenated: " + newStr); // 输出:Concatenated: Hello, Java! Welcome!// 字符串比较boolean isEqual = str.equals("Hello, Java!");System.out.println("Is Equal: " + isEqual); // 输出:Is Equal: true// 字符串截取String substring = str.substring(7, 11);System.out.println("Substring: " + substring); // 输出:Substring: Java// 字符串替换String replaced = str.replace("Java", "World");System.out.println("Replaced: " + replaced); // 输出:Replaced: Hello, World!}
}

 

常用方法表格总结

 

方法描述示例
length()返回字符串的长度str.length();
concat(String str)将指定字符串连接到此字符串的末尾str.concat(" Welcome!");
equals(Object obj)比较此字符串与指定对象是否相等str.equals("Hello, Java!");
substring(int beginIndex, int endIndex)返回一个新字符串,它是此字符串的一个子字符串str.substring(7, 11);
replace(CharSequence target, CharSequence replacement)将匹配的字符或字符串替换为新字符或字符串str.replace("Java", "World");
toUpperCase()将所有字符转换为大写str.toUpperCase();
toLowerCase()将所有字符转换为小写str.toLowerCase();
trim()去除字符串两端的空格str.trim();
charAt(int index)返回指定索引处的字符str.charAt(0);
indexOf(String str)返回子字符串第一次出现的索引,如果没有找到则返回-1str.indexOf("Java");

 

集合框架

 

Java集合框架提供了一组接口和类,用于存储和操作一组对象。集合框架包括以下常用接口和类:

 

List接口

 

List接口是一种有序集合,允许重复元素。常用实现类是ArrayListLinkedList

 

 

import java.util.ArrayList;
import java.util.List;public class ListExample {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("Apple");list.add("Banana");list.add("Apple"); // 允许重复元素System.out.println("List: " + list);// 访问元素String firstElement = list.get(0);System.out.println("First Element: " + firstElement);// 遍历集合for (String element : list) {System.out.println("Element: " + element);}}
}

 

Set接口

 

Set接口是一种不包含重复元素的集合。常用实现类是HashSetTreeSet

 

 

import java.util.HashSet;
import java.util.Set;public class SetExample {public static void main(String[] args) {Set<String> set = new HashSet<>();set.add("Apple");set.add("Banana");set.add("Apple"); // 不允许重复元素System.out.println("Set: " + set);// 遍历集合for (String element : set) {System.out.println("Element: " + element);}}
}

 

Map接口

 

Map接口是一种键值对(Key-Value)映射。不允许重复的键。常用实现类是HashMapTreeMap

 

 

import java.util.HashMap;
import java.util.Map;public class MapExample {public static void main(String[] args) {Map<String, Integer> map = new HashMap<>();map.put("Apple", 10);map.put("Banana", 20);map.put("Apple", 30); // 键不允许重复,值会被覆盖System.out.println("Map: " + map);// 访问元素int appleCount = map.get("Apple");System.out.println("Apple Count: " + appleCount);// 遍历集合for (Map.Entry<String, Integer> entry : map.entrySet()) {System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());}}
}

 

集合框架表格总结

 

接口实现类特点示例
ListArrayList, LinkedList有序集合,允许重复元素List<String> list = new ArrayList<>();
SetHashSet, TreeSet无序集合,不允许重复元素Set<String> set = new HashSet<>();
MapHashMap, TreeMap键值对映射,不允许重复键Map<String, Integer> map = new HashMap<>();

 

日期与时间处理

 

Java提供了多种日期和时间处理的类,主要包括Date类、Calendar类和java.time包中的新API。

 

Date类

 

Date类表示特定的时间,精确到毫秒。

 

 

import java.util.Date;public class DateExample {public static void main(String[] args) {Date now = new Date();System.out.println("Current Date: " + now);// 创建特定日期Date specificDate = new Date(2020, 1, 1);System.out.println("Specific Date: " + specificDate);}
}

 

Calendar类

 

Calendar类提供了更灵活的日期操作功能。

 

 

import java.util.Calendar;public class CalendarExample {public static void main(String[] args) {Calendar calendar = Calendar.getInstance();System.out.println("Current Date: " + calendar.getTime());// 设置特定日期calendar.set(2020, Calendar.JANUARY, 1);System.out.println("Specific Date: " + calendar.getTime());}
}

 

java.time包

 

Java 8引入了新的日期和时间API,包括LocalDateLocalTimeLocalDateTimeDateTimeFormatter类等。

 

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;public class DateTimeExample {public static void main(String[] args) {// 获取当前日期LocalDate date = LocalDate.now();System.out.println("Current Date: " + date);// 获取当前日期和时间LocalDateTime dateTime = LocalDateTime.now();System.out.println("Current DateTime: " + dateTime);// 格式化日期和时间DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");String formattedDateTime = dateTime.format(formatter);System.out.println("Formatted DateTime: " + formattedDateTime);}
}

日期与时间处理的表格总结

 

类名描述示例
Date表示特定的时间Date now = new Date();
Calendar提供更灵活的日期操作功能Calendar calendar = Calendar.getInstance();
LocalDate表示 ISO-8601日历系统中的日期(无时间)LocalDate date = LocalDate.now();
LocalTime表示 ISO-8601日历系统中的时间(无日期)LocalTime time = LocalTime.now();
LocalDateTime表示日期和时间的组合LocalDateTime dateTime = LocalDateTime.now();
DateTimeFormatter格式化和解析日期与时间DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

 

应用场景与实践

 

字符串操作应用场景

 

字符串操作在各种应用场景中广泛使用,如数据输入验证、文本处理、日志记录等。例如,在处理用户输入时,可以使用字符串方法去除空格、转换大小写和验证内容格式。

 

 

public class StringValidation {public static void main(String[] args) {String userInput = "   Hello Java!   ";// 去除两端空格String trimmedInput = userInput.trim();System.out.println("Trimmed Input: " + trimmedInput);// 验证内容格式(检查是否以 "Hello" 开头)if (trimmedInput.startsWith("Hello")) {System.out.println("Valid Input");} else {System.out.println("Invalid Input");}}
}

 

集合操作应用场景

 

集合框架的应用场景包括数据存储与检索、去重、排序等。例如,在开发购物车功能时,可以使用List存储商品列表,使用Set去重,以及使用Map存储商品及其数量。

 

 

import java.util.HashMap;
import java.util.Map;public class ShoppingCart {private Map<String, Integer> cart = new HashMap<>();// 添加商品public void addItem(String item) {cart.put(item, cart.getOrDefault(item, 0) + 1);}// 获取购物车中商品数量public int getItemCount(String item) {return cart.getOrDefault(item, 0);}public static void main(String[] args) {ShoppingCart shoppingCart = new ShoppingCart();shoppingCart.addItem("Apple");shoppingCart.addItem("Apple");shoppingCart.addItem("Banana");System.out.println("Apple Count: " + shoppingCart.getItemCount("Apple")); // 输出:Apple Count: 2System.out.println("Banana Count: " + shoppingCart.getItemCount("Banana")); // 输出:Banana Count: 1}
}

 

日期与时间处理应用场景

 

日期与时间处理广泛应用于日志记录、定时任务、日期计算等场景。例如,在构建一个事件提醒应用时,可以使用LocalDate存储事件日期,并使用Period进行日期计算。

 

 

import java.time.LocalDate;
import java.time.Period;public class EventReminder {public static void main(String[] args) {LocalDate eventDate = LocalDate.of(2024, 6, 13);LocalDate currentDate = LocalDate.now();// 计算剩余天数Period period = Period.between(currentDate, eventDate);int remainingDays = period.getDays();System.out.println("Event is in " + remainingDays + " days");}
}

 

表格总结

 

字符串操作方法表

 

方法描述示例
length()返回字符串的长度str.length();
concat(String str)将指定字符串连接到此字符串的末尾str.concat(" Welcome!");
equals(Object obj)比较此字符串与指定对象是否相等str.equals("Hello, Java!");
substring(int beginIndex, int endIndex)返回一个新字符串,它是此字符串的一个子字符串str.substring(7, 11);
replace(CharSequence target, CharSequence replacement)将匹配的字符或字符串替换为新字符或字符串str.replace("Java", "World");

 

集合框架接口与实现类表

 

接口实现类特点示例
ListArrayList, LinkedList有序集合,允许重复元素List<String> list = new ArrayList<>();
SetHashSet, TreeSet无序集合,不允许重复元素Set<String> set = new HashSet<>();
MapHashMap, TreeMap键值对映射,不允许重复键Map<String, Integer> map = new HashMap<>();

 

日期与时间处理类表

 

类名描述示例
Date表示特定的时间Date now = new Date();
Calendar提供更灵活的日期操作功能Calendar calendar = Calendar.getInstance();
LocalDate表示 ISO-8601日历系统中的日期(无时间)LocalDate date = LocalDate.now();
LocalTime表示 ISO-8601日历系统中的时间(无日期)LocalTime time = LocalTime.now();
LocalDateTime表示日期和时间的组合LocalDateTime dateTime = LocalDateTime.now();
DateTimeFormatter格式化和解析日期与时间DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

 

总结

 

本文详细介绍了Java编程中的常用类与对象操作,包括字符串操作、集合框架以及日期与时间处理。通过示例代码和表格总结,帮助您更好地理解和应用这些基础知识,提高编程效率和代码质量。

 

6c496d7f94c04e67a07e0974a68cf468.png

 

相关文章:

Java的核心类库

引言 在Java编程中&#xff0c;熟练掌握常用类与对象操作是开发的基础。Java的核心类库提供了丰富的功能&#xff0c;可以帮助开发者高效地处理各种编程任务。本文将详细介绍Java字符串操作、集合框架、日期与时间处理等内容&#xff0c;并通过图表和表格进行总结与示范。 字符…...

NSS题目练习9

[极客大挑战 2020]welcome 界面打开后一片空白&#xff0c;查看题目描述&#xff0c;翻译过来是 1.除了GET请求方法&#xff0c;还有一种常见的请求方法… 2.学习一些关于sha1和array的知识。 3.更仔细地检查phpinfo&#xff0c;你会发现标志在哪里。 补充&#xff1a; sh…...

JS 【算法】二分查找

使用场景 在有序数组中查找目标元素 const arr [1, 2, 3, 4, 5, 6, 7, 8, 9] const target 2 console.log(binarySearch1(arr, target)) console.log(binarySearch2(arr, target))循环实现 function binarySearch1(arr, target) {const length arr.lengthif (length 0) re…...

前端工程化工具系列(十四)—— Webpack(v5.91.0):应用模块打包器与构建工具

Webpack 是用于现代 JavaScript 应用程序的静态模块打包器。 当 webpack 处理应用程序时&#xff0c;它会在内部构建一个依赖关系图&#xff0c;该图映射项目所需的每个模块最终会生成一个或多个包。 1 概念 1.1 modules Webpack 中&#xff0c;无论是 JS 、CSS 还是图片等&…...

ThinkPHP+Bootstrap简约自适应网址导航网站源码

使用 ThinkPHPbootstrap 开发&#xff0c;后台采用全局 ajax 无刷新加载&#xff0c;前后台自适应&#xff0c;前台页面非常简洁适合自己收藏网站或做导航网站。 搭建教程&#xff1a; 1.整个主机 2.绑定解析域名 3.上传源码&#xff0c;解压 把解压出来的 nav.sql 文件导入数…...

Flutter 使用ffigen生成ffmpeg的dart接口

Flutter视频渲染系列 第一章 Android使用Texture渲染视频 第二章 Windows使用Texture渲染视频 第三章 Linux使用Texture渲染视频 第四章 全平台FFICustomPainter渲染视频 第五章 Windows使用Native窗口渲染视频 第六章 桌面端使用texture_rgba_renderer渲染视频 第七章 使用ff…...

(message): No CUDA toolset found.

解决方法&#xff1a; C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\visual_studio_integration\MSBuildExtensions\ 下的4个文件 复制到 D:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\BuildCustomizations\下。…...

【python】邮箱正则验证

当然可以。以下是一个使用Python正则表达式的例子&#xff0c;用于检查一个字符串是否是一个有效的电子邮件地址&#xff1a; import re def is_valid_email(email):regex r^[a-zA-Z0-9._%-][a-zA-Z0-9.-]\.[a-zA-Z]{2,}$return bool(re.match(regex, email)) # 测试电子邮件…...

深度学习(四)——torchvision中数据集的使用

1. 参数详解 torchvision中每个数据集的参数都是大同小异的&#xff0c;这里只介绍CIFAR10数据集 该数据集的数据格式为PIL格式 class torchvision.datasets.CIFAR10(root:str,train:boolTrue,transform:Optional[Callable]None,target_transform:Optional[Callable]None,do…...

【全开源】图书借阅管理系统源码(ThinkPHP+FastAdmin)

&#x1f4da;图书借阅管理系统&#xff1a;打造你的私人图书馆 一款基于ThinkPHPFastAdmin开发的简易图书借阅管理系统&#xff0c;一款轻量级的图书借阅管理系统&#xff0c;具有会员管理&#xff0c;图书管理&#xff0c;借阅及归还管理&#xff0c;会员充值等基本功能&…...

Mysql中使用where 1=1有什么问题吗

昨天偶然看见一篇文章&#xff0c;提到说如果在mysql查询语句中&#xff0c;使用where 11会有性能问题&#xff1f;&#xff1f; 这着实把我吸引了&#xff0c;因为我项目中就有不少同事&#xff0c;包括我自己也有这样写的。为了不给其他人挖坑&#xff0c;赶紧学习一下&…...

中心极限定理的MATLAB例

独立同分布的中心极限定理&#xff1a; 设 X 1 , X 2 , … , X n X_1, X_2, \ldots, X_n X1​,X2​,…,Xn​ 是独立同分布的随机变量序列&#xff0c;且 E ( X i ) μ E(X_i) \mu E(Xi​)μ&#xff0c; D ( X i ) σ 2 > 0 D(X_i) \sigma^2 > 0 D(Xi​)σ2>0&a…...

定义input_password函数,提示用户输入密码.如果用户输入长度<8,抛出异常,如果用户输入长度>=8,返回输入的密码

def input_password(password):str1passwordlen1len(str1)try:if len1<8:raise ValueError("密码长度不能小于8")else:return print(f"你的密码为:{password},请确认")except ValueError as e:print(f":Error is {e}")number1input("请…...

【深度学习】IP-Adapter 和 InstantID 的核心机制比较

IP-Adapter 和 InstantID 是两个在图像生成中具有不同优势和应用场景的模型。以下是这两个模型的区别及其理论分析。 IP-Adapter 特点: 图像提示能力: IP-Adapter 通过引入图像提示能力&#xff0c;使得预训练的文本到图像扩散模型可以接受图像作为提示&#xff0c;从而生成…...

JEPaaS 低代码平台 j_spring_security_check SQL注入漏洞复现

0x01 产品简介 JEPaaS是一款优秀的软件平台产品,可视化开发环境,低代码拖拽式配置开发,操作极其简单,可以帮助解决Java项目80%的重复工作,让开发更多关注业务逻辑,大大提高开发效率,能帮助公司大幅节省人力成本和时间成本,同时又不失灵活性。适用于搭建 OA、ERP、CRM、…...

天锐绿盾 | 无感知加密软件、透明加密系统、数据防泄漏软件

摘要&#xff1a;文件加密软件,包含禁止非授权的文件泄密和抄袭复制解决方案即使被复制泄密都是自动加密无法阅读,透明加密,反复制软件,内网监控,文件加密,网络安全方案,透明文件加密,加密文件,图纸加密,知识产权保护,加密数据; 通过绿盾信息安全管理软件&#xff0c;系统在不改…...

kubernetes(k8s)集群部署(2)

目录 k8s集群类型 k8s集群规划&#xff1a; 1.基础环境准备&#xff1a; &#xff08;1&#xff09;保证可以连接外网 &#xff08;2&#xff09;关闭禁用防火墙和selinux &#xff08;3&#xff09;同步阿里云服务器时间&#xff08;达到集群之间时间同步&#xff09; &…...

Git操作指南

1、提交代码操作 拉取线上分支&#xff0c;防止本地代码提交冲突 git pull origin dev git add . git commit -m “给本次提交添加注释” git push origin dev 2、打分支并切换分支 git checkout -b 新建并切换到新分支 切换到主分支 git checkout main git merge dev git p…...

全域推广和标准推广哪个更好。谁更容易获客?

随着全域概念的兴起&#xff0c;全域推广逐渐走进人们视野&#xff0c;并成为新的互联网热词。在此背景下&#xff0c;与全域推广相关的话题&#xff0c;如全域推广是什么及全域推广和标准推广的区别等成为了许多创业者讨论和搜索的对象。 所谓的全域推广&#xff0c;简单来说…...

首张地下地图!D-Wave 专用量子计算机助力沙特阿美完成地震成像

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨浪味仙 排版丨沛贤 深度好文&#xff1a;800字丨3分钟阅读 摘要&#xff1a;过去两年中&#xff0c;沙特阿美研究中心一直在使用总部在加拿大的D-Wave 公司的专用量子计算技术&#xff0c;…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

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…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构&#xff1a; 传统SMO中LPF会带来相位延迟和幅值衰减&#xff0c;并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF)&#xff0c;可以去除高次谐波&#xff0c;并且不用相位补偿就可以获得一个误差较小的转子位…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...

算术操作符与类型转换:从基础到精通

目录 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符&#xff1a;、-、*、/、% 赋值操作符&#xff1a;和复合赋值 单⽬操作符&#xff1a;、--、、- 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...