练习:输入若干字符串和逆序显示
1、接口
package demo;
public interface IStringService {
public void append(String str); //添加数据
public String[] reverse(); //顺序反转
}
2、实现类
package demo;
public class StringServiceImpl implements IStringService{
private StringBuffer data=new StringBuffer();
public void append(String str) {
this.data.append(str+"|");
}
public String[] reverse() {
String[] result=this.data.toString().split("\\|");
int mid=result.length/2;
int tail=result.length-1;
String tmp;
for(int head=0;head<=mid;head++) {
tmp=result[head];
result[head]=result[tail];
result[tail]=tmp;
tail--;
}
return result;
}
}
3、工厂类
package demo;
public class Factory {
private Factory() {};
public static IStringService getInstance() {
return new StringServiceImpl();
}
}
4、指令菜单类
package demo;
import java.util.Arrays;
import java.util.Scanner;
public class Menu {
private IStringService stringService;
private Scanner scanner;
public Menu() {
this.stringService=Factory.getInstance();
scanner=new Scanner(System.in);
this.choose();
}
public void showOrder() {
System.out.println("[0]退出程序");
System.out.println("[1]添加字符串");
System.out.println("[2]逆序输出字符串");
System.out.print("请输入指令序号:");
}
public void choose() {
while (true) {
showOrder();
String order=scanner.next();
switch (order) {
case "0": {
System.out.println("已退出");
System.exit(1);
}
case "1": {
System.out.println("输入字符串:");
stringService.append(scanner.next());
break;
}
case "2": {
String[] result=this.stringService.reverse();
System.out.println(Arrays.toString(result));
break;
}
default: {
System.out.println("输入错误,请重新输入");
choose();
}
}
}
}
}
5、测试类
package demo;
public class Main {
public static void main(String[] args) {
new Menu();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?