练习:输入若干字符串和逆序显示

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();
	}

}

posted @   fighterk  阅读(70)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示