Java 短消息接收器实现:使用数组和 ArrayList 实现短信存储和操作
Java 短消息接收器实现:使用数组和 ArrayList 实现短信存储和操作
本文将介绍使用 Java 语言实现一个简单的短消息接收器,支持接收、存储、显示、读取、删除和清空短信。我们将提供两种实现方法:使用数组和 ArrayList。
1. 使用数组实现
import java.util.Scanner;
public class MessageReceiver {
private static final int MAX_MESSAGES = 20;
private String[] messages;
private int count;
public MessageReceiver() {
messages = new String[MAX_MESSAGES];
count = 0;
}
public void receiveMessage(String message) {
if (count == MAX_MESSAGES) {
deleteOldestMessage();
}
messages[count] = message;
count++;
}
public void deleteOldestMessage() {
for (int i = 0; i < count - 1; i++) {
messages[i] = messages[i + 1];
}
count--;
}
public void displayMessages() {
if (count == 0) {
System.out.println('No messages');
} else {
for (int i = 0; i < count; i++) {
System.out.println('Message ' + (i + 1) + ': ' + messages[i]);
}
}
}
public void readMessage(int index) {
if (index >= 1 && index <= count) {
System.out.println('Message ' + index + ': ' + messages[index - 1]);
} else {
System.out.println('Invalid message index');
}
}
public void deleteMessage(int index) {
if (index >= 1 && index <= count) {
for (int i = index - 1; i < count - 1; i++) {
messages[i] = messages[i + 1];
}
count--;
System.out.println('Message ' + index + ' deleted');
} else {
System.out.println('Invalid message index');
}
}
public void deleteAllMessages() {
count = 0;
System.out.println('All messages deleted');
}
public void displayMenu() {
System.out.println('1. Receive message');
System.out.println('2. Display messages');
System.out.println('3. Read message');
System.out.println('4. Delete message');
System.out.println('5. Delete all messages');
System.out.println('6. Exit');
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
MessageReceiver messageReceiver = new MessageReceiver();
int choice = 0;
while (choice != 6) {
messageReceiver.displayMenu();
System.out.print('Enter your choice: ');
choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.print('Enter the message: ');
scanner.nextLine(); // consume the newline character
String message = scanner.nextLine();
messageReceiver.receiveMessage(message);
System.out.println('Message received');
break;
case 2:
messageReceiver.displayMessages();
break;
case 3:
System.out.print('Enter the message index: ');
int index = scanner.nextInt();
messageReceiver.readMessage(index);
break;
case 4:
System.out.print('Enter the message index: ');
index = scanner.nextInt();
messageReceiver.deleteMessage(index);
break;
case 5:
messageReceiver.deleteAllMessages();
break;
case 6:
System.out.println('Exiting...');
break;
default:
System.out.println('Invalid choice');
break;
}
}
scanner.close();
}
}
2. 使用 ArrayList 实现
import java.util.ArrayList;
import java.util.Scanner;
public class MessageReceiver {
private static final int MAX_MESSAGES = 20;
private ArrayList<String> messages;
public MessageReceiver() {
messages = new ArrayList<>();
}
public void receiveMessage(String message) {
if (messages.size() == MAX_MESSAGES) {
deleteOldestMessage();
}
messages.add(message);
}
public void deleteOldestMessage() {
messages.remove(0);
}
public void displayMessages() {
if (messages.isEmpty()) {
System.out.println('No messages');
} else {
for (int i = 0; i < messages.size(); i++) {
System.out.println('Message ' + (i + 1) + ': ' + messages.get(i));
}
}
}
public void readMessage(int index) {
if (index >= 1 && index <= messages.size()) {
System.out.println('Message ' + index + ': ' + messages.get(index - 1));
} else {
System.out.println('Invalid message index');
}
}
public void deleteMessage(int index) {
if (index >= 1 && index <= messages.size()) {
messages.remove(index - 1);
System.out.println('Message ' + index + ' deleted');
} else {
System.out.println('Invalid message index');
}
}
public void deleteAllMessages() {
messages.clear();
System.out.println('All messages deleted');
}
public void displayMenu() {
System.out.println('1. Receive message');
System.out.println('2. Display messages');
System.out.println('3. Read message');
System.out.println('4. Delete message');
System.out.println('5. Delete all messages');
System.out.println('6. Exit');
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
MessageReceiver messageReceiver = new MessageReceiver();
int choice = 0;
while (choice != 6) {
messageReceiver.displayMenu();
System.out.print('Enter your choice: ');
choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.print('Enter the message: ');
scanner.nextLine(); // consume the newline character
String message = scanner.nextLine();
messageReceiver.receiveMessage(message);
System.out.println('Message received');
break;
case 2:
messageReceiver.displayMessages();
break;
case 3:
System.out.print('Enter the message index: ');
int index = scanner.nextInt();
messageReceiver.readMessage(index);
break;
case 4:
System.out.print('Enter the message index: ');
index = scanner.nextInt();
messageReceiver.deleteMessage(index);
break;
case 5:
messageReceiver.deleteAllMessages();
break;
case 6:
System.out.println('Exiting...');
break;
default:
System.out.println('Invalid choice');
break;
}
}
scanner.close();
}
}
这两种方法都实现了基本的短消息接收器功能,选择哪种方法取决于你的具体需求和偏好。数组实现更简单,但需要预先分配固定大小的数组,如果消息数量超过数组容量,需要重新分配数组大小,比较麻烦。ArrayList 更加灵活,可以动态扩展大小,但可能会消耗更多内存。
扩展功能
你可以根据需要扩展这个短消息接收器,例如添加以下功能:
- 短信发送功能
- 短信分类功能
- 短信搜索功能
- 短信保存到文件或数据库
- 支持不同的短信格式
- 添加用户界面
希望本文能帮助你了解如何使用 Java 实现简单的短消息接收器。如果你有任何问题,请随时在评论区留言。
原文地址: https://www.cveoy.top/t/topic/psbM 著作权归作者所有。请勿转载和采集!