引言
在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) | 返回子字符串第一次出现的索引,如果没有找到则返回-1 | str.indexOf("Java"); |
集合框架
Java集合框架提供了一组接口和类,用于存储和操作一组对象。集合框架包括以下常用接口和类:
List接口
List
接口是一种有序集合,允许重复元素。常用实现类是ArrayList
和LinkedList
。
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
接口是一种不包含重复元素的集合。常用实现类是HashSet
和TreeSet
。
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)映射。不允许重复的键。常用实现类是HashMap
和TreeMap
。
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());
}
}
}
集合框架表格总结
接口 | 实现类 | 特点 | 示例 |
---|---|---|---|
List | ArrayList, LinkedList | 有序集合,允许重复元素 | List<String> list = new ArrayList<>(); |
Set | HashSet, TreeSet | 无序集合,不允许重复元素 | Set<String> set = new HashSet<>(); |
Map | HashMap, 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,包括LocalDate
、LocalTime
、LocalDateTime
和DateTimeFormatter
类等。
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"); |
集合框架接口与实现类表
接口 | 实现类 | 特点 | 示例 |
---|---|---|---|
List | ArrayList, LinkedList | 有序集合,允许重复元素 | List<String> list = new ArrayList<>(); |
Set | HashSet, TreeSet | 无序集合,不允许重复元素 | Set<String> set = new HashSet<>(); |
Map | HashMap, 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编程中的常用类与对象操作,包括字符串操作、集合框架以及日期与时间处理。通过示例代码和表格总结,帮助您更好地理解和应用这些基础知识,提高编程效率和代码质量。