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
利用界面交互进行字符串逆序输出
最新推荐文章于 2024-05-30 07:35:01 发布