练习:输入若干字符串和逆序显示
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();
}
}

浙公网安备 33010602011771号