明天开始讲JDBC了,那今天呢?

来源:互联网 发布:帕特里克帕特森nba数据 编辑:程序博客网 时间:2024/04/29 13:08

今天?今天我也在学习啊!就那个就什么来着,好像叫爪哇什么的,是爪哇,不对,好像是JAVA,对了,就是它,这家伙好啊,偶喜欢啊,偶的最爱啊!JAVA核心学完了,一个课程项目也做完了《门禁系统面向对象设计》感觉对爪哇的某些东东还是没学好,那个java.io里的东东和.NET中的不一样啊!如是就来写个MyShell,就是文件的一些操作了,那也是一时的灵感啊!也就2009-10-10晚上的事了,花我不少的时间啊!到零晨2点多啊,大体的形状也就搞出来了,我的shell通过这两个小项目,让我对面向对象有了不少的体会啊!由其是那个多态,大家 来看看我这个多态,多多给我建议啊!

public class MyShell implements Shell{
    /** 命令提示符 */
    private String tip ;

    public MyShell()
    {
        tip = "胡浩>>";
    }
    public MyShell(String tip)
    {
        this.tip=tip;   
    }

    /**************************
     * 启动 Shell, 不同的Shell 的命令提示符可以不同,可以提供设置
     * @return
     */
    public int startShell() {
        //输出欢迎字符
        System.out.println("************欢迎使用 MyShell/t/t/t/t");
        System.out.println("************本Shell目前只支持文件列举ls,文件删除del,和文件拷贝cp命令/t/t/t/t");
        System.out.println("************作者:胡浩 /t/t/t/t");
        System.out.println("************版本:V1.1 Bate1.0 /t/t/t/t");
        System.out.println("************描述:免费软件(Free Software) 你可以无限传播与反编译/t/t/t/t");
        System.out.println("************请在提示符后输入命令/t/t/t/t");
        System.out.println();

        //开始接受用户输入
        String cmd = "";
        Scanner scan = new Scanner(System.in);
        CommandHandler ch = null;
        try {
            while(true) {
                System.out.print(this.tip);
                cmd = scan.nextLine();
                if(cmd.trim().length() == 0) {

                    continue;
                }
                if(cmd.trim().startsWith("ls") || cmd.trim().startsWith("LS")) {
                    ch = new Ls_Command();
                    ch.excuCommand(cmd);

                } else if(cmd.trim().startsWith("cp") || cmd.trim().startsWith("CP")) {
                    ch = new Copy_Command();
                    ch.excuCommand(cmd);


                }else if(cmd.trim().startsWith("del")||cmd.trim().startsWith("DEL")){
                    ch=new Delet_Command();
                    ch.excuCommand(cmd);

                   
                }else if(cmd.trim().startsWith("md")||cmd.trim().startsWith("MD")||cmd.trim().startsWith("MKDIR")||cmd.trim().startsWith("mkdir")){
                    ch=new CreatDir_Command();
                    ch.excuCommand(cmd);

                   
                }else if(cmd.trim().equalsIgnoreCase("help")){
                    Help.printHelp();
                   
                }else if(cmd.trim().equalsIgnoreCase("exit")) {
                    System.out.println("谢谢使用,Shell程序退出, Bye.");
                    System.exit(0);
                } else {
                    System.out.println("对不起,此命令暂不支持");
                }

            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return 0;
    }

    @Override
    public String getPrompt() {
        return this.tip;
    }

    @Override
    public void setPrompt(String tip) {       
        this.tip = tip;
    }
}
也就这里用了多态了!

但有一点有问题啊!

String pattern1 = "([Mm][Dd]) [a-zA-Z]?(:)?([/////]*[0-9a-zA-Z]*";
        String pattern2="([Mm][Kk][Dd][Ii][Rr]) [a-zA-Z]?(:)?([/////]*[0-9a-zA-Z]*";

这两个字符串我是用来判断输入的是否为((md or MD) or  ( mkdir MKDIR))用来创建目录的

 

 

结果抛这处了

java.util.regex.PatternSyntaxException: Unclosed group near index 43
([Mm][Dd]) [a-zA-Z]?(:)?([///]*[0-9a-zA-Z]*
                                           ^
    at java.util.regex.Pattern.error(Unknown Source)
    at java.util.regex.Pattern.accept(Unknown Source)
    at java.util.regex.Pattern.group0(Unknown Source)
    at java.util.regex.Pattern.sequence(Unknown Source)
    at java.util.regex.Pattern.expr(Unknown Source)
    at java.util.regex.Pattern.compile(Unknown Source)
    at java.util.regex.Pattern.<init>(Unknown Source)
    at java.util.regex.Pattern.compile(Unknown Source)
    at java.util.regex.Pattern.matches(Unknown Source)
    at java.lang.String.matches(Unknown Source)
    at com.sodi.huhao.create.CreatDir_Command.excuCommand(CreatDir_Command.java:28)
    at com.sodi.huhao.kernel.MyShell.startShell(MyShell.java:71)
    at com.sodi.huhao.test.ShellTest.main(ShellTest.java:21)

 

 

高手们啊帮帮我吧!我在这里谢谢了!

原创粉丝点击