您的位置:程序门 -> java -> j2se / 基础类



高分求教5个java题,解决即给分!!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


高分求教5个java题,解决即给分!![已结贴,结贴人:blacksunsdo]
发表于:2007-01-19 19:08:53 楼主
题1:  
编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。  
十进制数转二进制数的方式是用这个数除以2,余数就是二进制数的最低位,接着再用得到的商作为被除数去除以2,这次得到的余数就是次低位,如此循环,直到被除数为0为止。其实,只要明白了打印出一个十进制数的每一位的方式(不断除以10,得到的余数就分别是个位,十位,百位),就很容易理解十进制数转二进制数的这种方式。这个程序要考虑输入的字符串不能转换成一个十进制整数的情况,并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。  

试题2:  
请用移位的方式打印出一个十进制整数的十六进制形式。提示:按每4个二进制位对整数进行移位和去高位处理,得到的结果就是十六进制数的一位,然后按下面三种方式之一(作为作业,要求每种方式都用到)计算出一个十六进制数值对应的十六进制形式:  
1)0-9之间的数值直接加上字符 '0 ',9以上的数值减去10以后再加上字符 'a '  
2)定义一个数组,其中包含0-f这些字符,然后用要计算的数值作为数组的索引号,即可获得其对应的十六进制数据。  
3)character.fordigit静态方法可以将一个十六进制的数字转变成其对应的字符表示形式,例如,根据数值15返回字符 'f '。  

题3:  
请结合正则表达式与string.split方法,从 "http://www.it315.org/get.jsp?user=zxx&pass=123 "这样的url地址中提取出每个参数的名称和值。这里要注意在正则表达式中要对?进行转义处理.  

题4:  
编写一个程序,用于实现文件的备份,程序运行时的命令语法为:  
java   mycopy   <sourcefile>   <destfile>  

题5:  
请编写一个字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,让程序通过这个包装类读取某个文本文件(例如,一个java源文件)时,能够在读取的每行前面都加上有行号和冒号。
发表于:2007-01-19 20:30:551楼 得分:0
自己作业不做,索性把题copy过来了都~~
你这样还不如做到哪里不懂拿出来问的好
发表于:2007-01-19 21:25:572楼 得分:0
自己做做看吧,提高能快些
发表于:2007-01-19 21:31:283楼 得分:0
......
发表于:2007-01-20 10:07:554楼 得分:0
我怎么看不东呀。
发表于:2007-01-20 10:23:065楼 得分:0
一看就是作业!
发表于:2007-01-20 11:01:256楼 得分:5
我帮你做一题,怎么也得给我20分吧。

第四题:

package   org.luyang.io;

import   java.io.bufferedreader;
import   java.io.file;
import   java.io.fileinputstream;
import   java.io.filenotfoundexception;
import   java.io.fileoutputstream;
import   java.io.ioexception;
import   java.io.inputstreamreader;

public   class   filecopy   {
        public   boolean   copyfile(string   src,   string   dec)   {
                file   srcfile   =   new   file(src);
                file   decfile   =   new   file(dec);
                try   {

                        fileinputstream   fis   =   new   fileinputstream(srcfile);
                        fileoutputstream   ops   =   new   fileoutputstream(decfile);
                        int   n;
                        byte   buff[]   =   new   byte[1024   *   4];
                        decfile.createnewfile();
                        while   ((n   =   fis.read(buff))   !=   -1)   {
                                ops.write(buff,   0,   n);

                        }
                        ops.flush();
                        fis.close();
                        ops.close();

                }   catch   (filenotfoundexception   e)   {
                        system.out.println(e);
                }   catch   (ioexception   er)   {
                        system.out.println(er);
                        return   false;
                }
                return   true;

        }

        public   static   void   main(string[]   args)   {
                filecopy   cf   =   new   filecopy();
                filepath   path   =   cf.new   filepath();
                if   (cf.copyfile(path.sourefilepath,   path.destfilepath))   {
                        system.out.println( "success ");
                }   else   {
                        system.out.println( "failed ");
                }
        }

        /**
          *   filepath   read
          *   @author   luyang
          *
          */
        class   filepath   {
                string   sourefilepath   =   null;
                string   destfilepath   =   null;
                public   filepath()   {
                        string   s   =   readinput();
                        string[]   arr   =   s.split( "\\s+ ");
                        if   (null   ==   arr   ¦ ¦   arr.length   !=   4)   {
                                system.out.println( "format   error ");
                                return;
                        }
                        sourefilepath   =   arr[2];
                        destfilepath   =   arr[3];
                }

                private   string   readinput()   {
                        string   s2   =   null;
                        try   {
                                bufferedreader   in   =   null;
                                in   =   new   bufferedreader(new   inputstreamreader(system.in));
                                s2   =   in.readline();
                        }   catch   (ioexception   ex)   {
                                system.out.println( "file   can 't   read ");
                        }
                        return   s2;
                }
        }

}
发表于:2007-01-20 11:11:517楼 得分:0
看在都是过来人的份上,我给你做一题简单的:
题4:
      public   static   void   main(string[]   args)   {
            system.out.println(copy( "d:/work/projectplanreport[4].pdf ",   "d:/work/projectplanreport[4]2.pdf "));
      }
     
      public   static   boolean   copy(string   src,   string   des)   {
            try   {
                  file   filesrc   =   new   file(src);
                  file   filedes   =   new   file(des);
                  fileinputstream   fis   =   new   fileinputstream(filesrc);
                  fileoutputstream   fos   =   new   fileoutputstream(filedes);
                  byte[]   bytes   =   new   byte[1024];
                  int   c;
                  while((c   =   fis.read(bytes))   !=   -1)   {
                        fos.write(bytes,   0,   c);
                  }
                  fis.close();
                  fos.close();
                  return   true;
            }   catch   (exception   ex)   {
                  return   false;
            }
      }
发表于:2007-01-20 11:15:198楼 得分:0
很遗憾的告诉luyang1016(闭月羞花猫),你这样做很不错,但有局限性,局限性在于你copy不了非txt文件。而我的尝试过可以copy一个dvd,mp3等等东西的。
发表于:2007-01-20 11:30:199楼 得分:20
import   java.io.file;
import   java.io.fileinputstream;
import   java.io.fileoutputstream;

public   class   mycopy   {
      public   static   void   main(string[]   args)   {
            system.out.println(copy(args));
      }
     
      public   static   boolean   copy(string[]   args)   {
            if   (args.length   !=   2)   {
                  return   false;
            }
            string   src   =   args[0];
            string   des   =   args[1];
            try   {
                  file   filesrc   =   new   file(src);
                  file   filedes   =   new   file(des);
                  fileinputstream   fis   =   new   fileinputstream(filesrc);
                  fileoutputstream   fos   =   new   fileoutputstream(filedes);
                  byte[]   bytes   =   new   byte[1024];
                  int   c;
                  while((c   =   fis.read(bytes))   !=   -1)   {
                        fos.write(bytes,   0,   c);
                  }
                  fis.close();
                  fos.close();
                  return   true;
            }   catch   (exception   ex)   {
                  return   false;
            }
      }
}

搂住运行下面语句即可:java   mycopy   <sourcefile>   <destfile>
发表于:2007-01-20 13:41:0510楼 得分:15
第三题:

import   java.util.hashmap;
import   java.util.iterator;
import   java.util.map;

public   class   urlsplit   {

        private   map   paras;

        public   urlsplit()   {
                paras   =   new   hashmap();
        }

        /**
          *   @param   args
          */
        public   static   void   main(string[]   args)   {
                string   url   =   "http://www.it315.org/get.jsp?user=zxx&pass=123&yy-ere=99 ";
                urlsplit   us   =   new   urlsplit();
                us.urlsplit(url);

                map   result   =   us.paras;
                iterator   it   =   result.keyset().iterator();
                while   (it.hasnext())   {
                        object   obj   =   it.next();
                        system.out.println(obj   +   ":       "   +   result.get(obj));
                }

        }

        public   void   urlsplit(string   url)   {

                if   (url   !=   null)   {
                        string[]   s1   =   url.split( "\\? ");
                        if   (s1.length   ==   1)   {
                                system.out.println( "该url不带参数! ");
                        }   else   if   (s1.length   ==   2)   {
                                this.paras.put( "baseurl ",   s1[0]);
                                string[]   s2   =   s1[1].split( "\\& ");

                                if   (s2.length   >   0)   {

                                        for   (int   i   =   0;   i   <   s2.length;   i++)   {
                                                string[]   s3   =   s2[i].split( "= ");
                                                if   (s3.length   ==   2)   {
                                                        this.paras.put(s3[0],   s3[1]);
                                                }
                                        }
                                }

                        }   else   {
                                system.out.println( "该url不合法! ");
                        }
                }

        }

}
发表于:2007-01-20 15:37:0411楼 得分:0
非常感谢大家!这可不是我的作业!而是我准备参加个j2ee培训,他们要求做完这些题才有资格报名,我一个人实在不会,所有让大家帮忙把代码写出来!!然后自己再研究明白了就ok
        谢谢大家!谁把其他几题也做了啊!顺便标下题号!再谢!!
发表于:2007-01-20 17:31:3112楼 得分:0
你是哪个班的?叫什么名字?学号多少??
发表于:2007-01-20 18:21:4413楼 得分:0
ls的强
发表于:2007-01-20 19:34:3814楼 得分:20
第一题(只考虑正数)
import   java.util.regex.*;

public   class   dec2bin{
public   static   void   main(string[]   args){
if(args.length   ==   0){
system.out.println( "未输入需要转换的字符串! ");
return;
}
if(!pattern.matches( "\\d+ ",   args[0])){
system.out.println( "参数中含有非法字符! ");
return;
}
try{
int   src   =   integer.parseint(args[0]);
string   result   =   " ";//二进制结果
while(src   >   0){
result   =   src   %   2   +   result;
src   /=   2;
}
system.out.println(result);
}catch(numberformatexception   nfe){
system.out.println( "参数超出了int型数据表示范围! ");
}
}
}
发表于:2007-01-20 22:22:1115楼 得分:0
谢谢大家!!还有2题,大家再帮忙啊!!另回   tonyblared(奔放的犀牛)   你给第2段代码中,
运行不成功,运行命令如下   java   mycopy   111.txt   222.txt(在当前目录下存在这两文件,且111有内容,22为空)   ,结果是flase   我在catch部分加了打印错误代码的部分,也把错误代码打出来了,还是   flase   用绝对路径运行时没错误代码,结果也是   flas   ,等待帮忙中,谢谢!!!
发表于:2007-01-20 23:25:1216楼 得分:15
第五题:

import   java.io.file;
import   java.io.filenotfoundexception;
import   java.io.filereader;
import   java.io.ioexception;

public   class   test20070120   {

        /**
          *   @param   args
          */
        public   static   void   main(string[]   args)   {
                file   file   =   new   file( "c:/sendmailaction.java ");
                if   (file.exists())   {
                        filereader   fr;
                        try   {
                                fr   =   new   filereader(file);
                                bufferunit   br   =   new   bufferunit(fr);
                                string   str   =   " ";
                                while   ((str   =   br.readline())   !=   null)
                                        system.out.println(str);
                        }   catch   (filenotfoundexception   e)   {

                                e.printstacktrace();
                        }   catch   (ioexception   e)   {

                                e.printstacktrace();
                        }

                }
        }
}


import   java.io.bufferedreader;
import   java.io.ioexception;
import   java.io.reader;

public   class   bufferunit   extends   bufferedreader   {
       
       
        private     int   row;

        public   bufferunit(reader   arg0)   {
               
                super(arg0);
                this.row   =1;

        }
       
        public   string   readline()   throws   ioexception{
                string   s=super.readline();
                if(s!=null){
                        s=this.row+ ":   "+s;
                        this.row++;
                }
                return   s;
        }

}
发表于:2007-01-21 10:08:4817楼 得分:0
谢谢大家!还剩第二题,完即结帖,谁再帮忙啊?
        另回:tonyblared(奔放的犀牛)       你的代码在命令行下能用,用工具时候才出现我上面说的问题,
可能是工具问题!   sorry!
发表于:2007-01-21 17:15:4018楼 得分:0
up````
发表于:2007-01-21 18:58:1619楼 得分:0
看着象张孝祥的题
发表于:2007-01-21 21:46:3820楼 得分:0
这是别人培训入学的测试题啊
发表于:2007-01-21 22:25:4921楼 得分:0
这也行啊。当年我怎么没想到呢。
发表于:2007-01-21 22:28:3722楼 得分:0
呵呵;上机题?
发表于:2007-01-21 22:43:5523楼 得分:0
这几道题还是有点难度的,我是个初学者还不太会做哈!!得努力了
发表于:2007-01-21 23:04:3724楼 得分:25
public   static   string   printintegerinhex(int   num){
    final   char[]   chars   =   new   char[]{ '0 ',   '1 ',   '2 ',   '3 ',
                                    '4 ',   '5 ',   '6 ',   '7 ',
                                    '8 ',   '9 ',   'a ',   'b ',
                                    'c ',   'd ',   'e ',   'f '};

    string   result   =   " ";
   
    //   如果是负数则要转换成正数
    if(num   <   0){
        result   +=   "- ";
       
        num   =   0   -   num;
    }
   
    int   filter   =   15;   //   15的最低四位都是1,呵呵,正好用!
    for(int   i   =   1;   i   <=   8;   ++i){
        //   把要转换的那四位移到最低四位处,并&之!
        int   b   =   (num   < <   (i   *   4))   &   filter;
       
        //   分别用了三种方法来转换!
        switch(i){
        //   方法一
        case   1   :
            if(b   <=9)
                result   +=   (char)( '0 '   +   b);
            else
                result   +=   'a '   +   (b   -   10);  
            break;
        //   方法二
        case   2   :
            result   +=   chars[b];
            break;
        //   方法三
        default   :
            result   +=   character.fordigit(b,   16);
        }
    }
   
    //   因为character.fordigit()方法会返回小写字母,所以touppercase一下!
    return   result.touppercase();
}
发表于:2007-01-21 23:06:3025楼 得分:0
给分吧,哈哈,刚注册,赚分玩玩^_^
发表于:2007-01-21 23:24:1726楼 得分:0
学习中!
发表于:2007-01-22 09:32:4327楼 得分:0
看来楼主对工具不太熟啊,如果想在工具里面用的话,要在命令行参数里加东西,不同的工具是不一样的。
例如eclipse中
1)在左边的package   exploror中选定mycopy类
2)菜单run   ->   run...   ->   (x=)arguments   ->   在programm   arguments中输入参数。
发表于:2007-01-22 09:45:0228楼 得分:0
呵呵:)
有意思!
发表于:2007-01-22 11:09:2029楼 得分:0
晕了,大家连这是哪的题都知道啊?
我准备参加张孝祥的j2ee培训,这是他们的测试题!!都解决了,谢谢大家啊!
马上给分!
发表于:2007-01-22 11:33:4330楼 得分:0
回     eric1028     你的代码好象还有漏洞,当传递进去的参数小于16的时候一切正常,大于16的时候就出错了!
比如     16——> 00000000,17——> 00000001,依次类推,我找不出问题在哪!还得麻烦你!谢谢!
发表于:2007-01-22 11:40:2931楼 得分:0
这样就ok,前面代码问题的原因研究中……^_^  

public   static   string   printintegerinhex(int   num){
        final   char[]   chars   =   new   char[]{ '0 ',   '1 ',   '2 ',   '3 ',
                                        '4 ',   '5 ',   '6 ',   '7 ',
                                        '8 ',   '9 ',   'a ',   'b ',
                                        'c ',   'd ',   'e ',   'f '};

        string   result   =   " ";
       
        //   如果是负数则要转换成正数
        if(num   <   0){
            result   +=   "- ";
           
            num   =   0   -   num;
        }
       
        int   filter   =   15;   //   15的最低四位都是1,呵呵,正好用!
        for(int   i   =   7;   i   > =   0;   --i){
            //   把要转换的那四位移到最低四位处,并&之!
            int   b   =   (num   > >   (i   *   4))   &   filter;
           
            //   分别用了三种方法来转换!
            switch(i   %   3){
            //   方法一
            case   1   :
                if(b   <=9)
                    result   +=   (char)( '0 '   +   b);
                else
                    result   +=   'a '   +   (b   -   10);  
                break;
            //   方法二
            case   2   :
                result   +=   chars[b];
                break;
            //   方法三
            default   :
                result   +=   character.fordigit(b,   16);
            }
        }
       
        //   因为character.fordigit()方法会返回小写字母,所以touppercase一下!
        return   result.touppercase();
    }
发表于:2007-01-22 11:49:2432楼 得分:0
学习
发表于:2007-01-22 13:19:5533楼 得分:0
培训还要入学考试?
发表于:2007-01-22 20:57:3034楼 得分:0
谢谢大家!现在可以说是完美解决了!!!
发表于:2007-01-24 16:17:5635楼 得分:0
mark


快速检索

最新资讯
热门点击