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

blacksunsdo 2007-01-19 07: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源文件)时,能够在读取的每行前面都加上有行号和冒号。
...全文
1521 35 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
i2u112233 2007-01-24
  • 打赏
  • 举报
回复
MARK
whfasrp2005 2007-01-22
  • 打赏
  • 举报
回复
学习
eric1028 2007-01-22
  • 打赏
  • 举报
回复
这样就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();
}
blacksunsdo 2007-01-22
  • 打赏
  • 举报
回复
回 eric1028 你的代码好象还有漏洞,当传递进去的参数小于16的时候一切正常,大于16的时候就出错了!
比如 16——>00000000,17——>00000001,依次类推,我找不出问题在哪!还得麻烦你!谢谢!
blacksunsdo 2007-01-22
  • 打赏
  • 举报
回复
晕了,大家连这是哪的题都知道啊?
我准备参加张孝祥的J2EE培训,这是他们的测试题!!都解决了,谢谢大家啊!
马上给分!
emin_lee 2007-01-22
  • 打赏
  • 举报
回复
呵呵:)
有意思!
TONYBLARED 2007-01-22
  • 打赏
  • 举报
回复
看来楼主对工具不太熟啊,如果想在工具里面用的话,要在命令行参数里加东西,不同的工具是不一样的。
例如Eclipse中
1)在左边的Package Exploror中选定MyCopy类
2)菜单Run -> Run... -> (x=)Arguments -> 在Programm arguments中输入参数。
blacksunsdo 2007-01-22
  • 打赏
  • 举报
回复
谢谢大家!现在可以说是完美解决了!!!
txlfire 2007-01-22
  • 打赏
  • 举报
回复
培训还要入学考试?
timbear 2007-01-21
  • 打赏
  • 举报
回复
学习中!
eric1028 2007-01-21
  • 打赏
  • 举报
回复
给分吧,哈哈,刚注册,赚分玩玩^_^
eric1028 2007-01-21
  • 打赏
  • 举报
回复
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();
}
asususer 2007-01-21
  • 打赏
  • 举报
回复
这几道题还是有点难度的,我是个初学者还不太会做哈!!得努力了
crazycy 2007-01-21
  • 打赏
  • 举报
回复
呵呵;上机题?
mygia 2007-01-21
  • 打赏
  • 举报
回复
这也行啊。当年我怎么没想到呢。
blacksunsdo 2007-01-21
  • 打赏
  • 举报
回复
谢谢大家!还剩第二题,完即结帖,谁再帮忙啊?
另回:TONYBLARED(奔放的犀牛) 你的代码在命令行下能用,用工具时候才出现我上面说的问题,
可能是工具问题! SORRY!
tanggoodboy 2007-01-21
  • 打赏
  • 举报
回复
这是别人培训入学的测试题啊
laiseeme 2007-01-21
  • 打赏
  • 举报
回复
看着象张孝祥的题
xk2y 2007-01-21
  • 打赏
  • 举报
回复
up````
TONYBLARED 2007-01-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>
加载更多回复(15)

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧