Java的核心类库

news2024/11/16 1:32:12

引言

 

在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: 2
        System.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

 

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

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

相关文章

神经网络 torch.nn---nn.RNN()

torch.nn - PyTorch中文文档 (pytorch-cn.readthedocs.io) RNN — PyTorch 2.3 documentation torch.nn---nn.RNN() nn.RNN(input_sizeinput_x,hidden_sizehidden_num,num_layers1,nonlinearitytanh, #默认tanhbiasTrue, #默认是Truebatch_firstFalse,dropout0,bidirection…

遥控器无法点击AOSP Settings 的管理存储按钮 MANAGE STORAGE

前言 这里是遇到了MANAGE STORAGE的按钮使用遥控器移动的时候无法聚焦到这个按钮&#xff0c;自然也就无法点击。它只能聚焦到这一整个整体&#xff0c;因此我就设置当点击到这一整个整体时&#xff0c;就相应MANAGE STORAGE按钮的点击事件。 图片 代码 packages/apps/Setti…

极限存在的条件

极限存在的条件 在左极限与又极限相关的内容中我们知道极限&#xff08;也叫双侧极限&#xff09;存在的充分必要条件是左右极限都存在且相等&#xff0c;否则极限不存在。所以这里要来详细的探讨一下在什么情况下函数会不存在极限。 1. 函数 f ( x ) 1 x f(x)\frac{1}{x} …

知识分享|个人查询大数据信用有哪些好处?

在当今数字化时代&#xff0c;个人信用评估已经成为金融、购物、租房等各个方面的关键因素。大数据技术的兴起为个人信用查询带来了新的可能性和好处。下面将探讨个人查询大数据信用的益处。 首先&#xff0c;个人查询大数据信用可以全面了解自己的信用状况 通过查询大数据信用…

46.Python-web框架-Django - 多语言配置

目录 1.Django 多语言基础知识 1.1什么是Django国际化和本地化&#xff1f; 1.2Django LANGUAGE_CODE 1.3关于languages 1.4RequestContext对象针对翻译的变量 2.windows系统下的依赖 3.django多语言配置 3.1settings.py配置 引用gettext_lazy 配置多语言中间件&#x…

白酒:茅台镇白酒的品鉴课程与文化学习

茅台镇&#xff0c;这个位于中国贵州省的美丽小镇&#xff0c;以其与众不同的自然环境和杰出的酿酒工艺&#xff0c;成为了世界著名的白酒产区。作为茅台镇的杰出代表&#xff0c;云仓酒庄豪迈白酒不仅在国内享有盛誉&#xff0c;在国际市场上也备受瞩目。为了更好地推广中国白…

产品经理研读:Agent的九种设计模式(图解+代码)

引言 上周五我在一个特工宇宙的社群里做了一次分享&#xff0c;题目是《从 YC 项目看 AI 趋势以及 AI agent 开发工具类产品该如何设计》&#xff0c;收到了大家不错的反馈&#xff0c;不过回看视频后还是发现不少可以提升的地方&#xff0c;感兴趣的朋友公众号回复“分享”获…

【CMake】CMake从入门到实战系列(十六)—— CMake中设置交叉编译

文章目录 一、前言二、切换编译器的方法1、修改系统环境变量来指定编译器2、CMake命令行中指定编译器3、CMakeLists.txt中指定编译器4、示例 一、前言 CMake是一个强大的跨平台的编译工具&#xff0c;实际嵌入式开发过程中&#xff0c;经常需要使用到交叉编译。在Ubuntu环境中…

linux中: IDEA 由于JVM 设置内存过小,导致打开项目闪退问题

1. 找到idea安装目录 由于无法打开idea&#xff0c;只能找到idea安装目录 在linux(debian/ubuntu)中idea的插件默认安装位置和配置文件在哪里? 默认路径&#xff1a; /home/当前用户名/.config/JetBrains/IntelliJIdea2020.具体版本号/options2. 找到jvm配置文件 IDEA安装…

Visual Studio编译fatal error C1001: 编译器中发生内部错误

项目本来是能正常编译的&#xff0c;但是突然出现“fatal error C1001: 编译器中发生内部错误。” 2> (编译器文件“f:\dd\vctools\compiler\utc\src\p2\main.c”&#xff0c;第 255 行) 2> 要解决此问题&#xff0c;请尝试简化或更改上面所列位置附近的程序。 2> …

AI大模型的战场 通用大模型 vs. 垂直大模型

目录 前言1 通用大模型1.1 通用大模型简介1.2 通用大模型的优势1.3 通用大模型的挑战 2 垂直大模型2.1 垂直大模型简介2.2 垂直大模型的优势2.3 垂直大模型的挑战 3 通用大模型 vs. 垂直大模型3.1 技术层面的比较3.2 商业层面的比较3.3 未来的发展趋势 结语 前言 随着人工智能…

直播预约丨《指标体系建设实战》第三期:指标平台功能架构及落地实践

指标是反映企业的各项核心业务活动、管理成效的数据体系&#xff0c;指标体系作为联结业务逻辑与数据实体的关键桥梁&#xff0c;是构建高质量数据统计的基础单元&#xff0c;并在量化业务绩效和效果评估中扮演着核心角色。 为了更好地服务于客户并提供切实可行的实践指导&…

idea插件开发之通过纯编码方式开发页面(不使用form ui)

写在前面 本文看线如何通过纯编码方式来定义页面。 1&#xff1a;正戏 我们首先来定义一个面板&#xff0c;需要继承抽象类&#xff1a;com.intellij.openapi.ui.SimpleToolWindowPanel&#xff0c;如下&#xff1a; public class MySelfDefinePanel extends SimpleToolWin…

NSS题目练习9

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

模拟电子之电子管

如果要实现一个放大器的功能&#xff0c;需要一个固定的放大倍数&#xff08;Gain&#xff09;&#xff0c;这也就是说输出信号应该是跟随输入信号变化而变化&#xff0c;换句话说输出信号应该要受到输入信号的控制。 在电子学中使用的最多的两个物理量就是电压和电流&#xf…

(四)React组件、useState、组件样式

1. 组件 1.1 组件是什么 概念&#xff1a;一个组件就是用户界面的一部分&#xff0c;它可以有自己的逻辑和外观&#xff0c;组件之间可以相互嵌套&#xff0c;也可以复用多次。 组件化开发可以让开发者像搭积木一样构建一个完整的庞大应用 1.2 React组件 在React中&#xf…

【设计模式深度剖析】【7】【行为型】【观察者模式】

&#x1f448;️上一篇:中介者模式 设计模式-专栏&#x1f448;️ 文章目录 观察者模式英文原文直译如何理解&#xff1f; 观察者模式的角色类图代码示例 观察者模式的应用观察者模式的优点观察者模式的缺点观察者模式的使用场景 观察者模式 观察者模式&#xff08;Observer…

【React】配置别名路径@

别名路径配置 1. 路径解析配置&#xff08;webpack&#xff09; CRA本身把webpack配置包装到了黑盒里无法直接修改&#xff0c;需要借助一个插件 - craco步骤 安装craco npm i -D craco/craco项目根目录下创建配置文件 craco.config.js配置文件中添加路径解析配置 const pa…

Android低代码开发 - 直接创建一个下拉刷新列表界面

看了我Android低代码开发 - 让IDE帮你写代码这篇文章的小伙伴&#xff0c;大概都对Dora全家桶开发框架有基本的认识了吧。本篇文章将会讲解如何使用dora-studio-plugin快捷创建一个下拉刷新列表界面。 效果演示 这样直接通过图形界面的方式就创建好了下拉刷新上拉加载空态界面…

3. 打造个性化可爱怪物表情包:详细步骤教学

表情符号已经成为当今互联网对话中不可或缺的元素&#xff0c;一句话加上一个笑脸符号&#xff0c;语气就大不同。表情符号与我们一道稳步发展&#xff0c;成为鲜活和丰富情感的必要交流工具。通过表情符号&#xff0c;几个像素就能以有趣、清晰、能引起情感共鸣的方式表达我们…