花几千上万学习Java,真没必要!(二十九)

news2024/9/17 7:26:18

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.coloradmin.cn/o/1951780.html

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

相关文章

Linux下使用gdb进行调试入门级

个人名片&#xff1a; &#x1f393;作者简介&#xff1a;嵌入式领域优质创作者&#x1f310;个人主页&#xff1a;妄北y &#x1f4de;个人QQ&#xff1a;2061314755 &#x1f48c;个人邮箱&#xff1a;[mailto:2061314755qq.com] &#x1f4f1;个人微信&#xff1a;Vir2025WB…

网络通信---UDP

前两天做了个mplayer项目&#xff0c;今日继续学习 网络内容十分重要&#xff01;&#xff01;&#xff01; 1.OSI七层模型 应用层:要传输的数据信息&#xff0c;如文件传输&#xff0c;电子邮件等&#xff08;最接近用户&#xff0c;看传输的内容类型到底是什么&#xff09; …

Linux使用mjpg-streamer进行图像传输

图像传输是一项在Linux操作系统中比较常见的一个操作&#xff0c;在视频图传时&#xff0c;一般是采用MJPG-streamer来进行图像传输&#xff0c;本文就以树莓派为例子&#xff0c;来示范一个图像传输。 1.树莓派的摄像头激活 首先更新树莓派 sudo apt-get update sudo apt-ge…

【Java基础语法】字符修改,以及equals的用法

前言&#xff1a; 小编这里将上一期String类型进行了补充&#xff0c;添加了字符串的修改&#xff0c;以及equals的用法内容&#xff0c;和hashcode的使用&#xff1b;上一期&#xff1a;http://t.csdnimg.cn/ijiM6 1.字符串的修改 在上一期中我们说到字符串是不能被修改的&am…

详细分析 Bladex中的swagger-resources资源未授权访问的解决方法

目录 1. 问题所示2. 原理分析2.1 RouterFunctionConfiguration 类2.2 SwaggerResourceHandler 类3. 解决方法3.1 网关过滤3.2 去除配置3.3 代码修改4. 彩蛋1. 问题所示 从而也导致资源接口文件泄露 https://xxx/swagger-resources 或者 ip:端口号/swagger-resources 2. 原理分…

matlab笔记 - 最小二乘法拟合直线的原理与实现

最小二乘法拟合直线原理与实现 一、引言二、原理概述1. 建模思路2.误差函数3.求解最优参数 三、matlab实现最小二乘法拟合直线1.直接代码实现2.MATLAB内置函数实现 四、扩展统计学与回归分析经济学工程学图像处理机器学习 一、引言 最小二乘法&#xff08;Least Squares Metho…

ElasticSearch搜索

ES搜索 elastic search 一套搜索引擎技术,主要技术栈包括 Elasticsearch&#xff1a;用于数据存储、计算和搜索 Kibana&#xff1a;用于数据可视化 在数据库模糊查询中,因为不走索引,所以效率很低,而在搜索引擎中,不仅效率高,而且即使出现个别错字,或者用拼音搜索,甚至用同…

自定义Observal返回数据

在写Angular项目的时候&#xff0c;很多都是用的Observal,但是有时候我们在接口还没好 &#xff0c;或者处理有些接口我们想要通过方法在observal返回特定的数据&#xff0c;这个时候要我们可以如下处理&#xff1a; 方法一、通过of返回 方法二&#xff1a;通过Observable的cr…

【Rust】所有权OwnerShip

什么是所有权 rust使用由编译器检查的一些规则构成的所有权系统来管理内存。且这不会影响程序的运行效率。 所有权规则 rust中每一个每一个值都有一个owner。在同一时刻&#xff0c;只能有一个owner。当这个owner超过范围&#xff0c;则该值会被丢弃。 String类型 为什么需…

Unity UGUI 之 自动布局组件

本文仅作学习笔记与交流&#xff0c;不作任何商业用途 本文包括但不限于unity官方手册&#xff0c;唐老狮&#xff0c;麦扣教程知识&#xff0c;引用会标记&#xff0c;如有不足还请斧正 本文在发布时间选用unity 2022.3.8稳定版本&#xff0c;请注意分别 1.什么是自动布局组件…

vue3 使用Mock

官网: http://mockjs.com/ 安装 npm install mockjs -Dsteps1: main.js 文件引入 import /api/mock.jssteps2: src/api/mock.js import Mock from mockjs import homeApi from ./mockData/home /*** 1.拦截的路径:mock拦截了正常NetWork/网络请求,数据正常响应* 2.方法* …

22 Python常用内置函数——枚举

enumerate() 函数用来枚举可迭代对象中的元素&#xff0c;返回可迭代的 enumerate 对象&#xff0c;其中每个元素都是包含索引和值的元组。 print(enumerate(abcd)) print(list(enumerate(abcd))) # 枚举字符串中的元素 print(list(enumerate([hello, world]))) # 枚举列表中…

Mongodb文档和数组的通配符索引

学习mongodb&#xff0c;体会mongodb的每一个使用细节&#xff0c;欢迎阅读威赞的文章。这是威赞发布的第97篇mongodb技术文章&#xff0c;欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题&#xff0c;欢迎在文章下面点个赞&#xff0c;或者关…

前端canvas——赛贝尔曲线

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

SearchGPT vs Google SearchGPT vs Perplexity 2024年AI搜索引擎评价测评

medium: https://medium.com/p/f7c9481efa50 SearchGPT User ReviewsSearchGPT VS GoogleSearchGPT VS Perplexity AI搜索引擎领域越来越多玩家参与&#xff0c;比如Google的Gemini OpenAI发布的SearchGPT以及Perplexity AI。OpenAI刚刚发布和SearchGPT&#xff0c;希望通过搜…

Internet Download Manager2024功能特点优势分析及使用建议及注意事项

1. Internet Download Manager简介 2. 功能特点 3. 优势分析 4. 专家评价 5. 使用建议及注意事项 6. 常见问题解答 7. 用户反馈及案例分享 8. IDM下载器的未来发展趋势 文章&#xff1a; 在互联网快速发展的今日&#xff0c;人们对于网络资源的获取和利用越来越频繁。无论…

智能合约在能源行业中的应用:促进可再生能源的发展与利用

随着全球能源需求的增长和环境保护意识的提升&#xff0c;可再生能源作为替代传统能源的重要选择&#xff0c;正逐步成为能源供应的主流。本文将探讨智能合约在能源行业中的应用&#xff0c;特别是如何通过智能合约促进可再生能源的发展与利用。 可再生能源的重要性与挑战 可再…

亚信安慧AntDB数据库与用友Yon BIP商业创新平台完成兼容性互认证

近日&#xff0c;湖南亚信安慧科技有限公司&#xff08;简称&#xff1a;亚信安慧&#xff09;自主研发的AntDB数据库产品&#xff0c;与用友网络科技股份有限公司&#xff08;简称&#xff1a;用友网络&#xff09;的Yon BIP用友商业创新平台完成了兼容性互认证。经过双方技术…

【四】jdk8基于m2芯片arm架构Ubuntu24虚拟机下载与安装

文章目录 1. 安装版本2. 开始安装3. 集群安装 1. 安装版本 如无特别说明&#xff0c;本文均在root权限下安装。进入oracle官网&#xff1a;https://www.oracle.com/java/technologies/downloads/找到最下面Java SE 看到java 8&#xff0c;下载使用 ARM64 Compressed Archive版…

Logitech Media Server已更名为Lyrion Music Server

还以为是个新软件&#xff0c;折腾之后来才发现 &#xff0c;Lyrion Music Server 原名叫 Logitech Media Server&#xff0c;只是现在它已不再由 Logitech 拥有和维护&#xff0c;已完全移交给社区&#xff0c;因此更名&#xff0c;但简称依然还是 LMS。镜像目前还是延续了 lo…