花几千上万学习Java,真没必要!(二十九)
1、基本数据类型包装类:
测试代码1:
package apitest.com;
//使用Integer类的不同方法处理整数。
//将字符串转换为整数(parseInt)和Integer对象(valueOf),
//将整数转换回字符串(toString)以及转换为十六进制(toHexString)、八进制(toOctalString)和二进制(toBinaryString)字符串。
//使用bitCount、highestOneBit和lowestOneBit方法处理整数的位。
//使用Integer对象的compareTo方法来比较两个Integer对象。
public class IntegerMethodsDemo { public static void main(String[] args) { // 字符串转整数 String str = "123"; int numFromString = Integer.parseInt(str); System.out.println("parseInt: " + numFromString); // 字符串转Integer对象 Integer intObj = Integer.valueOf(str); System.out.println("valueOf(String): " + intObj); // int转Integer对象 Integer intObj2 = Integer.valueOf(456); System.out.println("valueOf(int): " + intObj2); // 整数转字符串 String numAsString = Integer.toString(numFromString); System.out.println("toString: " + numAsString); // 整数转十六进制字符串 String hexString = Integer.toHexString(numFromString); System.out.println("toHexString: " + hexString); // 整数转八进制字符串 String octalString = Integer.toOctalString(numFromString); System.out.println("toOctalString: " + octalString); // 整数转二进制字符串 String binaryString = Integer.toBinaryString(numFromString); System.out.println("toBinaryString: " + binaryString); // 位操作方法 int numBits = 9; // 二进制: 1001 System.out.println("bitCount: " + Integer.bitCount(numBits)); System.out.println("highestOneBit: " + Integer.highestOneBit(numBits)); System.out.println("lowestOneBit: " + Integer.lowestOneBit(numBits)); // Integer对象比较 Integer int1 = 100; Integer int2 = 200; System.out.println("compareTo: " + int1.compareTo(int2)); // 输出: -1 }
}
运行结果如下:
测试代码2:
package apitest.com;
//创建一个IntAndStringConversion类,包含三个静态方法:intToString、stringToInt和hexStringToInt。
//将int转换为String,String转换为int,将十六进制String转换为int。
public class IntAndStringConversion { public static void main(String[] args) { // int 到 String 的转换 int number = 123; String strFromInt = intToString(number); System.out.println("int to String: " + strFromInt); // String 到 int 的转换 String str = "456"; try { int numFromString = stringToInt(str); System.out.println("String to int: " + numFromString); } catch (NumberFormatException e) { System.out.println("Error: The string cannot be parsed as an integer."); } // 十六进制字符串到 int 的转换 String hexStr = "1C8"; try { int hexNum = hexStringToInt(hexStr); System.out.println("Hex String to int: " + hexNum); } catch (NumberFormatException e) { System.out.println("Error: The hex string cannot be parsed as an integer."); } } // int 到 String 的转换 public static String intToString(int number) { return String.valueOf(number); } // String 到 int 的转换(处理异常) public static int stringToInt(String str) throws NumberFormatException { return Integer.parseInt(str); } //非数字字符的字符串转换为整数时,会抛出异常。// 十六进制字符串到 int 的转换(处理异常) public static int hexStringToInt(String hexStr) throws NumberFormatException { return Integer.parseInt(hexStr, 16); }
}
运行结果如下:
2、字符串中的数字排序:
package apitest.com;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
//字符串中数字排序是通过正则表达式或遍历字符串来提取所有的数字,
//然后将这些数字存储到某种集合(如List<Integer>)中,接着对这个集合进行排序,
//最后将排序后的数字重新组合成字符串。
public class SortNumbersInString {public static String sortNumbersInString(String input) {List<Integer> numbers = new ArrayList<>();StringBuilder sb = new StringBuilder();for (char c : input.toCharArray()) {if (Character.isDigit(c)) {numbers.add(Integer.parseInt(String.valueOf(c)));} else {sb.append(c);}}Collections.sort(numbers, Comparator.naturalOrder());for (int num : numbers) {sb.append(num);}return sb.toString();}public static void main(String[] args) {String input = "327810hello82world975java310";String sortedString = sortNumbersInString(input);System.out.println("Sorted string: " + sortedString);}
}
运行结果如下:
3、自动装箱和自动拆箱:
package apitest.com;
public class AutoBoxingAndUnboxing { //自动装箱:将基本数据类型自动转换为对应的包装类对象。//自动拆箱:将包装类对象自动转换为对应的基本数据类型。 //性能影响:自动装箱和自动拆箱可能会导致性能下降,因为每次装箱和拆箱时都会创建新的对象(对于装箱)或执行类型转换(对于拆箱)。//在性能敏感的应用中,应当避免不必要的装箱和拆箱操作。//空指针异常:自动拆箱一个null的包装类对象时,会抛出NullPointerException。需要特别注意处理可能为null的包装类对象。//缓存机制:自动装箱的某些基本数据类型(比如Integer、Short、Byte、Character和Boolean,在-128到127之间的Integer值)有特殊的缓存机制。//这个范围内的Integer对象会被缓存,相同的值不会重复创建新的对象。但这并不影响自动拆箱可能导致的NullPointerException。public static void main(String[] args) { // 自动装箱 Integer integerObject = 5; // int -> Integer // 使用integerObject像使用Integer对象一样 System.out.println("Integer value: " + integerObject); // 自动拆箱 int intValue = integerObject; // Integer -> int // 现在intValue是一个基本数据类型int System.out.println("int value: " + intValue); // 自动拆箱可能导致NullPointerException Integer nullableInteger = null; try { int willThrowNPE = nullableInteger; // 尝试自动拆箱 } catch (NullPointerException e) { System.out.println("Caught NullPointerException: Cannot unbox null value."); } // 避免自动拆箱导致的NullPointerException int safeIntValue = nullableInteger != null ? nullableInteger : 0; System.out.println("Safe int value: " + safeIntValue); }
}
运行结果如下:
4、Date类:
测试代码1:
package apitest.com;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; public class DateTimeExample { public static void main(String[] args) { // 打印当前日期 printCurrentDate(); // 打印当前日期和时间,并格式化为字符串 printCurrentDateTimeFormatted(); } // 打印当前日期 public static void printCurrentDate() { LocalDate currentDate = LocalDate.now(); System.out.println("当前日期: " + currentDate); } // 打印当前日期和时间,并格式化为字符串 public static void printCurrentDateTimeFormatted() { LocalDateTime currentTime = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formattedDateTime = currentTime.format(formatter); System.out.println("当前日期和时间(格式化): " + formattedDateTime); }
}
测试代码2:
package apitest.com;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; public class DateFormatExamples { public static void main(String[] args) { // 创建一个LocalDate实例 LocalDate date = LocalDate.now(); // 创建一个LocalDateTime实例 LocalDateTime dateTime = LocalDateTime.now(); // 定义并打印不同的日期格式 DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd"); System.out.println("格式1: " + date.format(formatter1)); // 例如:2023-10-05 DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("dd/MM/yyyy"); System.out.println("格式2: " + date.format(formatter2)); // 例如:05/10/2023 DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("EEE, d MMM yyyy"); System.out.println("格式3: " + date.format(formatter3)); // 例如:Thu, 5 Oct 2023 // 定义并打印不同的日期时间格式 DateTimeFormatter formatter4 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); System.out.println("格式4: " + dateTime.format(formatter4)); // 例如:2023-10-05 14:30:45 DateTimeFormatter formatter5 = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm a"); System.out.println("格式5: " + dateTime.format(formatter5)); // 例如:05/10/2023 02:30 PM(取决于当前时间) DateTimeFormatter formatter6 = DateTimeFormatter.ISO_LOCAL_DATE_TIME; System.out.println("ISO格式: " + dateTime.format(formatter6)); // 例如:2023-10-05T14:30:45 }
}
运行结果如下:
测试代码3:
package apitest.com;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.Locale; public class DateParseExamples { public static void main(String[] args) { String dateString1 = "2023-10-05"; String dateString2 = "05/10/2023"; String dateString3 = "Thu, 5 Oct 2023"; String dateTimeString = "2023-10-05 14:30:45"; try { DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate date1 = LocalDate.parse(dateString1, formatter1); System.out.println("解析的日期1: " + date1); DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("dd/MM/yyyy"); LocalDate date2 = LocalDate.parse(dateString2, formatter2); System.out.println("解析的日期2: " + date2); // 使用 DateTimeFormatter 解析包含星期几的日期字符串 DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("EEE, d MMM yyyy", Locale.ENGLISH); LocalDate date3 = LocalDate.parse(dateString3, formatter3); System.out.println("解析的日期3: " + date3); DateTimeFormatter formatter4 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime dateTime = LocalDateTime.parse(dateTimeString, formatter4); System.out.println("解析的日期时间: " + dateTime); } catch (DateTimeParseException e) { System.err.println("日期时间解析错误: " + e.getMessage()); } }
}
运行结果如下:
5、 Calendar类:
package apitest.com;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class CalendarExample { public static void main(String[] args) { // 获取默认时区和语言环境的Calendar实例 Calendar calendar = Calendar.getInstance(); // 显示当前日期和时间 System.out.println("当前日期和时间: " + calendar.getTime()); // 获取并打印年份、月份(注意月份是从0开始的,即0代表1月)、日期 int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; // 月份加1,以便按常规方式显示 int day = calendar.get(Calendar.DAY_OF_MONTH); System.out.println("年: " + year + ", 月: " + month + ", 日: " + day); // 设置日期为2023年10月1日 calendar.set(Calendar.YEAR, 2023); calendar.set(Calendar.MONTH, Calendar.OCTOBER); // 直接使用Calendar的常量 calendar.set(Calendar.DAY_OF_MONTH, 1); System.out.println("设置后的日期: " + calendar.getTime()); // 给日期加上10天 calendar.add(Calendar.DAY_OF_MONTH, 10); System.out.println("加10天后的日期: " + calendar.getTime()); // 使用GregorianCalendar创建特定日期 GregorianCalendar gregorianCalendar = new GregorianCalendar(2022, Calendar.DECEMBER, 25); System.out.println("特定的日期: " + gregorianCalendar.getTime()); }
}
运行结果如下:
相关文章:

花几千上万学习Java,真没必要!(二十九)
1、基本数据类型包装类: 测试代码1: package apitest.com; //使用Integer类的不同方法处理整数。 //将字符串转换为整数(parseInt)和Integer对象(valueOf), //将整数转换回字符串(…...

C#如何引用dll动态链接库文件的注释
1、dll动态库文件项目生成属性中要勾选“XML文档文件” 注意:XML文件的名字切勿修改。 2、添加引用时XML文件要与DLL文件在同一个目录下。 3、如果要是添加引用的时候XML不在相同目录下,之后又将XML文件复制到相同的目录下,需要删除引用&am…...

WordPress原创插件:自定义文章标题颜色
插件设置截图 文章编辑时,右边会出现一个标题颜色设置,可以设置为任何颜色 更新记录:从输入颜色css代码,改为颜色选择器,更方便! 插件免费下载 https://download.csdn.net/download/huayula/89585192…...

Unity分享:继承自MonoBehaviour的脚步不要对引用类型的字段在声明时就初始化
如果某些字段在每个构造函数中都要进行初始化,很多人都喜欢在字段声明时就进行初始化,对于一个非继承自MonoBehaviour的脚步,这样做是没有问题的,然而继承自MonoBehaviour后就会造成内存的浪费,为什么呢?因…...

.NET Core中如何集成RabbitMQ
在.NET Core中集成RabbitMQ主要涉及到几个步骤,包括安装RabbitMQ的NuGet包、建立连接、定义队列、发送和接收消息等。下面是一个简单的指南来展示如何在.NET Core应用程序中集成RabbitMQ。 目录 1. 安装RabbitMQ.Client NuGet包 2. 建立连接 3. 定义队列 4. 发…...

嵌入式C++、STM32、MySQL、GPS、InfluxDB和MQTT协议数据可视化:智能物流管理系统设计思路流程(附代码示例)
目录 项目概述 系统设计 硬件设计 软件设计 系统架构图 代码实现 1. STM32微控制器与传感器代码 代码讲解 2. MQTT Broker设置 3. 数据接收与处理 代码讲解 4. 数据存储与分析 5. 数据分析与可视化 代码讲解 6. 数据可视化 项目总结 项目概述 随着电子商务的快…...

.net core docker部署教程和细节问题
在.NET Core中实现Docker一键部署,通常涉及以下几个步骤:编写Dockerfile以定义镜像构建过程、构建Docker镜像、运行Docker容器,以及(可选地)使用自动化工具如Docker Compose或CI/CD工具进行一键部署。以下是一个详细的…...

php数据库链接
Php超全局变量 GET 和 POST 都创建一个数组(例如 array( key1 > value1, key2 > value2, key3 > value3, ...))。此数组包含键/值对,其中 键是表单控件的名称,…...

python+vue3+onlyoffice在线文档系统实战20240726笔记,左侧菜单实现和最近文档基本实现
解决右侧高度过高的问题 解决方案:去掉右侧顶部和底部。 实现左侧菜单 最近文档,纯粹文档 我的文档,既包括文件夹也包括文件 共享文档,别人分享给我的 基本实现代码: 渲染效果: 简单优化 设置默认菜…...

vue中的nexttrick
Vue.js 是一个用于构建用户界面的渐进式框架,它允许开发者通过声明式的数据绑定来构建网页应用。在 Vue 中,nextTick 是一个非常重要的 API,它用于延迟回调的执行,直到下次 DOM 更新循环之后。 为什么使用 nextTick? …...

【BUG】已解决:ModuleNotFoundError: No module named ‘requests‘
ModuleNotFoundError: No module named ‘requests‘ 目录 ModuleNotFoundError: No module named ‘requests‘ 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身&a…...

深入理解JS中的发布订阅模式和观察者模式
发布/订阅模式(Publish/Subscribe)和观察者模式(Observer Pattern)在概念上非常相似,都是用于实现对象之间的松耦合通信。尽管它们在实现细节和使用场景上有所不同,但核心思想是相通的。 观察者模式 直接通信:在观察者模式中,观察者(Observer)直接订阅主题(Subject…...

网站IPv6支持率怎么检测?
在当今数字化的时代,IPv6的推广和应用已经成为网络发展的重要趋势。IPv6拥有更大的地址空间、更高的安全性和更好的性能,对于满足日益增长的网络需求至关重要。对于网站所有者和管理员来说,了解其网站对IPv6的支持率是评估网站性能和兼容性的…...

react中简单的配置路由
1.安装react-router-dom npm install react-router-dom 2.新建文件 src下新建page文件夹,该文件夹下新建login和index文件夹用于存放登录页面和首页,再在对应文件夹下分别新建入口文件index.js; src下新建router文件用于存放路由配置文件…...

RocketMQ消息短暂而又精彩的一生(荣耀典藏版)
目录 前言 一、核心概念 二、消息诞生与发送 2.1.路由表 2.2.队列的选择 2.3.其它特殊情况处理 2.3.1.发送异常处理 2.3.2.消息过大的处理 三、消息存储 3.1.如何保证高性能读写 3.1.1.传统IO读写方式 3.2零拷贝 3.2.1.mmap() 3.2.2sendfile() 3.2.3.CommitLog …...

Linux中的文件操作
linux中exec*为加载器,可以将程序加载到内存。 main()函数也是函数,也要被调用,也要被传参 故在一个程序中exec*系列的函数先被执行 程序替换中execve是系统调用,其他的都是封装。 进程程序替换 1.创建子进程的目的࿱…...

[排序]hoare快速排序
今天我们继续来讲排序部分,顾名思义,快速排序是一种特别高效的排序方法,在C语言中qsort函数,底层便是用快排所实现的,快排适用于各个项目中,特别的实用,下面我们就由浅入深的全面刨析快速排序。…...

freertos的学习cubemx版
HAL 库的freertos 1 实时 2 任务->线程 3 移植 CMSIS_V2 V1版本 NVIC配置全部是抢占优先级 第四组 抢占级别有 0-15 编码规则, 变量名 :类型前缀, c - char S - int16_t L - int32_t U - unsigned Uc - uint8_t Us - uint…...

PyQt 信号与槽功能
PyQt 信号与槽功能 基本概念:在 PyQt 中,信号(Signal)与槽(Slot)是一种用于对象之间通信的机制。信号可以由一个对象发出,而槽是用于接收信号并执行相应操作的函数。 信号 信号是在 PyQt 的类…...

navicat premium安装和破解
https://blog.csdn.net/qq1031893936/article/details/90264688 提示信息 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn...

OSI七层模型
OSI(Open System Interconnect),即开放式系统互连。 该体系结构标准定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层 ),即OSI开放系统互连参考模型。 应用层 为用…...

Qt自定义MessageToast
效果: 文字长度自适应,自动居中到parent,会透明渐变消失。 CustomToast::MessageToast(QS("最多添加50张图片"),this);1. CustomToast.h #pragma once#include <QFrame>class CustomToast : public QFrame {Q_OBJECT pub…...

自动化测试 pytest 中 scope 限制 fixture使用范围!
导读 fixture 是 pytest 中一个非常重要的模块,可以让代码更加简洁。 fixture 的 autouse 为 True 可以自动化加载 fixture。 如果不想每条用例执行前都运行初始化方法(可能多个fixture)怎么办?可不可以只运行一次初始化方法? 答…...

软件-vscode-plantUML-drawio
文章目录 vscode基础命令 实操1. vscode实现springboot项目搭建 (包括spring data jpa和sqlLite连接) PlantUMLDrawio基础实操 vscode 基础 命令 启动mysql命令 docker run --name mysql-container -e MYSQL_ROOT_PASSWORD123456 -p 3306:3306 -d my…...

Python爬虫实战案例(爬取图片)
爬取图片的信息 爬取图片与爬取文本内容相似,只是需要加上图片的url,并且在查找图片位置的时候需要带上图片的属性。 这里选取了一个4K高清的壁纸网站(彼岸壁纸https://pic.netbian.com)进行爬取。 具体步骤如下: …...

智慧工地视频汇聚管理平台:打造现代化工程管理的全新视界
一、方案背景 科技高速发展的今天,工地施工已发生翻天覆地的变化,传统工地管理模式很容易造成工地管理混乱、安全事故、数据延迟等问题,人力资源的不足也进一步加剧了监管不到位的局面,严重影响了施工进度质量和安全。 视频监控…...

ASP.NET中的六大对象有哪些?以及各自的功能以及使用方式
在ASP.NET Web Forms中,并没有严格意义上的“六大对象”,但通常我们指的是与HTTP请求和响应处理紧密相关的几个内置对象。以下是这些对象及其功能、使用方式以及简单的实现源码示例: Response对象 功能:用于向客户端发送HTTP响应…...

Elastic 及阿里云 AI 搜索 Tech Day 将于 7 月 27 日在上海举办
活动主题 面向开发者的 AI 搜索相关技术分享,如 RAG、多模态搜索、向量检索等。 活动介绍 参加 Elastic 原厂与阿里云联合举办的 Generative AI 技术交流分享日。借助 The Elastic Search AI Platform, 使用开放且灵活的企业解决方案,以前所…...

基于ssm+vue医院住院管理系统源码数据库
摘 要 随着时代的发展,医疗设备愈来愈完善,医院也变成人们生活中必不可少的场所。如今,已经2021年了,虽然医院的数量和设备愈加完善,但是老龄人口也越来越多。在如此大的人口压力下,医院住院就变成了一个…...

【在排序数组中查找元素的第一个和最后一个位置】python刷题记录
R2-分治 有点easy的感觉,感觉能用哈希表 class Solution:def searchRange(self, nums: List[int], target: int) -> List[int]:nlen(nums)dictdefaultdict(list)#初始赋值哈希表,记录出现次数for num in nums:if not dict[num]:dict[num]1else:dict[…...