花几千上万学习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());  }  
}

运行结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/49495.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode19 删除链表的倒数第N个结点

前言 题目&#xff1a; 19. 删除链表的倒数第N个结点 文档&#xff1a; 代码随想录——删除链表的倒数第N个结点 编程语言&#xff1a; C 解题状态&#xff1a; 成功解答&#xff01; 思路 最直接的想法就是先获取到链表的整体长度&#xff0c;减去倒数的个数&#xff0c;正向…

【计算机网络】DNS命令练习与抓包分析实验

一&#xff1a;实验目的 1&#xff1a;掌握DNS缓存的清除方法&#xff0c;了解DNS缓存的作用和影响。 2&#xff1a;熟悉nslookup和dig等DNS查询工具的使用&#xff0c;理解DNS查询的基本原理和过程。 3&#xff1a;通过抓包和分析&#xff0c;深入了解DNS查询和响应消息的格…

html+css 实现悬浮按钮

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽效果&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 文…

Python+Flask+MySQL+日线指数与情感指数预测的股票信息查询系统【附源码,运行简单】

PythonFlaskMySQL日线指数与情感指数预测的股票信息查询系统【附源码&#xff0c;运行简单】 总览 1、《股票信息查询系统》1.1 方案设计说明书设计目标工具列表 2、详细设计2.1 登录2.2 程序主页面2.3 个人中心界面2.4 基金详情界面2.5 其他功能贴图 3、下载 总览 自己做的项…

pytorch 源码阅读(3)——torch.fx

0 概述 FX 是一个供开发者用来转换 nn.Module 实例的工具包。FX 包含三个主要组件&#xff1a;符号跟踪器&#xff08;symbolic_traced&#xff09;、中间表示&#xff08;intermediate representation&#xff0c;IR&#xff09;和Python 代码生成&#xff08;Code generatio…

【iOS】——属性关键字

属性关键字的类型 在iOS中属性关键字分为四种类型&#xff1a; 可访问性: readonly ,readwrite原子性 &#xff1a; atomic &#xff0c;nonatomic内存管理 &#xff1a; retain/strong/copy&#xff0c; assign/unsafe_unretained&#xff0c;weak方法命名&#xff1a;sette…

W3C XML Schema 活动

关于《W3C XML Schema 活动》的信息&#xff0c;我找到了一些相关资料。XML Schema 是一种基于 XML 的DTD&#xff08;文档类型定义&#xff09;替代物&#xff0c;它提供了对应用程序、文档结构、属性和数据类型的更好支持。XML 1.0 版本支持可定义文档结构的DTD&#xff0c;而…

Linux 动静态库

一、动静态库 1、库的理解 库其实是给我们提供方法的实现&#xff0c;如上面的对于printf函数的实现就是在库中实现的&#xff0c;而这个库也就是c标准库&#xff0c;本质也是文件&#xff0c;也有对应的路径 2、区别 静态库是指编译链接时&#xff0c;把库文件的代码全部加入…

前端canvas——赛贝尔曲线

曲线之美&#xff0c;不在于曲线本身&#xff0c;而在于用的人。 所以就有了这期赛贝尔曲线。 新规矩&#xff0c;先上个GIT。 效果图 开局一张图&#xff0c;代码全靠编。 代码 画骨 先想着怎么画一个心形吧&#xff0c;等你想好了&#xff0c;就知道怎么画了。 首先就还…

ES(Elasticsearch)常用的函数有哪些?

【电子书大全】内含上千本顶级编程书籍&#xff0c;是程序员必备的电子书资源包&#xff0c;并且会不断地更新&#xff0c;助你在编程的道路上更上一层楼&#xff01; 链接: https://pan.baidu.com/s/1yhPJ9LmS_z5TdgIgxs9NvQ?pwdyyds > 提取码: yyds Elasticsearch&#x…

Cyberchef基础概念之-循环语句操作-Jump/Label

在本专栏的前面的文章介绍了fork,merge,subsection,register等多种概念来解决实际场景的问题。本文将介绍的Jump/Label的操作类似于编程语言中的for和while的功能&#xff0c;相信在学会使用jump操作后&#xff0c;将有助于解决更为复杂的数据处理问题。 本文将详细的介绍该操…

Matplotlib : Python 的绘图库

Matplotlib 是一个 Python 的绘图库&#xff0c;广泛用于生成各种静态、动态、交互式的图表。它基于 NumPy&#xff0c;一个用于科学计算的 Python 库。Matplotlib 可以用于生成出版质量级别的图表&#xff0c;并且提供了丰富的定制选项&#xff0c;以适应不同用户的需求。以下…

linux对标画图板的软件

而不是对标photoshop sudo apt-get install kolourpaint

渗透测试 - 攻击思路与手段、工具分享

导语&#xff1a; 我在CSDN活跃已有6年&#xff0c;这是国内最优秀的IT学习平台之一。尽管有人对其持批评态度&#xff0c;我个人认为它拥有独特的优势。 最近我参加了一场网络安全工作的面试&#xff0c;在广州与面试官深入交流了半个多小时。尽管未能通过面试&#xff0c;但这…

每日OJ_力扣+牛客_另类加法_不用加号的加法

目录 力扣面试题 17.01. 不用加号的加法 解析代码 牛客另类加法 解析代码 力扣面试题 17.01. 不用加号的加法 面试题 17.01. 不用加号的加法 设计一个函数把两个数字相加。不得使用 或者其他算术运算符。 示例: 输入: a 1, b 1 输出: 2提示&#xff1a; a, b 均可能…

心跳机制详解

1、什么是心跳机制&#xff1f; 心跳机制出现在TCP长连接中&#xff0c;客户端和服务端之间定时发送一种特殊的数据包通知对方还在线&#xff0c;以确保TCP连接地可靠性&#xff0c;有可能TCP连接由于某些原因&#xff08;例如网线被拔了&#xff0c;突然断电&#xff09;导致…

iOS中的KVO(Key-Value Observing)详解

iOS中的KVO&#xff08;Key-Value Observing&#xff09;详解 一、KVO概述 KVO&#xff08;Key-Value Observing&#xff09;&#xff0c;即键值观察/监听&#xff0c;是苹果提供的一套事件通知机制。它允许一个对象&#xff08;观察者&#xff09;观察/监听另一个对象&#…

【网络安全】文件上传基础及过滤方式

文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷&#xff0c;导致用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这些文件可以是木马、病毒、恶意脚本或者WebShell等。“文件上传”本身没有问题&#xff0c;有问题的是文件上传后&#xf…

OpenSSL学习笔记及在项目中的使用

OpenSSL官方命令手册&#xff1a;OpenSSL commands - OpenSSL Documentation 参考教程&#xff1a; 操作&#xff1a;OpenSSL的基本使用教程(一&#xff09;_openssl.exe使用教程-CSDN博客 操作&#xff1a;Linux和Shell回炉复习系列文章总目录 - 骏马金龙 - 博客园 (cnblog…

SAP主生产计划流程

流程概述 生产计划,在系统中体现为计划独立需求该数据元素,是SAP系统组织生产计划/运行MPS主生产计划(是平衡供需的支点)或MRP物料需求计划的源头数据,本流程描述了生产单位在ERP系统中生产计划管理流程。企业的主生产计划员通常以正式销售订单或备货订单为主要依据编制最…