インターフェイスの相互作用を使用して、文字列を逆の順序で出力します

package day20_javaIO_Demo;

import java.util.Arrays;

/*
 * 字符串逆序显示
 * 从键盘传入多个字符串到程序中,并将其按逆序输出
 * 考虑要素:内容可以随时修改(StringBuffer),由用户决定是否输入
 */
//定义字符串的操作标准
interface IStringService {
	public void append(String str); // 追加数据

	public String[] reverse(); // 反转处理

}

//实现子类定义,利用StringBuffer
class StringServiceImpl implements IStringService {
	private StringBuffer data = new StringBuffer();

	@Override
	public void append(String str) {
		// TODO Auto-generated method stub
		this.data.append(str).append("|");
	}

	@Override
	public String[] reverse() {
		String results[] = this.data.toString().split("\\|");
		int center = results.length / 2;
		int head = 0;
		int tail = results.length - 1;
		for (int i = 0; i < center; i++) {
			String temp = results[head];
			results[head] = results[tail];
			results[tail] = temp;
		}

		return results;
	}

}

class FactoryString { // 定义工厂类
	private FactoryString() {
	}

	public static IStringService getInstance() {
		return new StringServiceImpl();
	}
}

//定义一个Menu处理类,采用交互式的界面形式处理
class Menu {
	private IStringService stringService;

	public Menu() {
		this.stringService = FactoryString.getInstance();
		this.choose() ;
	}

	public void choose() {
		this.show();
		String choose = StringUtil.getString("请进行选择:");
		switch (choose) {
		case "0": {
			System.out.println("下次再见!");
			System.exit(1);
		}
		case "1": { // 接收输入数据
			String str = StringUtil.getString("请输入字符串数据:");
			this.stringService.append(str); // 进行数据的保存
			choose();
		}
		case "2": { // 接收输入数据
			String results[] = this.stringService.reverse(); // 进行数据的翻转
			System.out.println(Arrays.toString(results)); // 直接输出
			choose();
		}
		default: {
			System.out.println("非法操作请确认后重新输入!");
			choose();
		}
		}
	}

	public void show() {
		System.out.println("0.结束程序执行\n");
		System.out.println("1.追加字符串数据\n");
		System.out.println("2.逆序显示所有的字符串数据");
		System.out.println("\n");

	}
}

public class java_StringReverse {
	public static void main(String[] args) {
		new Menu() ; //启动程序界面
	}
}

このプログラムで使用されるStringUtilクラスのgetStringは、別のブログのクラスを参照しています。アクセスアドレス:https//blog.csdn.net/qq_41663470/article/details/114231889

おすすめ

転載: blog.csdn.net/qq_41663470/article/details/114238744
おすすめ