JAVA练习题.docx
- 文档编号:8570987
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:15
- 大小:23.16KB
JAVA练习题.docx
《JAVA练习题.docx》由会员分享,可在线阅读,更多相关《JAVA练习题.docx(15页珍藏版)》请在冰豆网上搜索。
JAVA练习题
1.编写程序,实现在窗口中显示“HelloJAVA!
”,要求用两类Java程序编写并运行结果。
publicclassBaseText{
publicstaticvoidmain(String[]args){
System.out.println("HelloJAVA!
");
}
}
2.编写程序,键盘输入两个数,计算并输出它们的积。
publicclassBaseText{
publicstaticvoidmain(String[]args){
if(args!
=null&&args.length==2){
try{
doublenum1=Double.parseDouble(args[0]);
doublenum2=Double.parseDouble(args[1]);
System.out.println("得到的乘积是:
"+num1*num2);
}catch(NumberFormatExceptione){
e.printStackTrace();
}
}else{
System.out.println("你输入的数据不正确,输入数据的格式样例为:
12.34");
}
}
}
3.编写程序,接受用户输入1~7之间的整数,若不符合条件则重新输入,利用swith语句输出星期几。
publicclassBaseText{
publicstaticvoidmain(String[]args){
if(args!
=null&&args.length==1){
try{
doublenum=Double.parseDouble(args[0]);
intintValue=(int)num;
switch(intValue){
case1:
System.out.println("今天是星期一");
break;
case2:
System.out.println("今天是星期二");
break;
case3:
System.out.println("今天是星期三");
break;
case4:
System.out.println("今天是星期四");
break;
case5:
System.out.println("今天是星期五");
break;
case6:
System.out.println("今天是星期六");
break;
case7:
System.out.println("今天是星期天");
break;
default:
args=null;
System.out.println("请重新输入");
break;
}
}catch(NumberFormatExceptione){
e.printStackTrace();
}
}else{
System.out.println("你输入的数据不合法");
}
}
}
4.编写程序,包括一个标签、一个文本框和一个按钮,当单击按钮时把文本框中的内容复制到标签中显示。
packagetest;
importjava.awt.Toolkit;
importjavax.swing.SwingUtilities;
importjavax.swing.UIManager;
importjava.awt.Dimension;
publicclassApplication{
booleanpackFrame=false;
publicApplication(){
Frame1frame=newFrame1();
if(packFrame){
frame.pack();
}else{
frame.validate();
}
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
DimensionframeSize=frame.getSize();
if(frameSize.height>screenSize.height){
frameSize.height=screenSize.height;
}
if(frameSize.width>screenSize.width){
frameSize.width=screenSize.width;
}
frame.setLocation((screenSize.width-frameSize.width)/2,
(screenSize.height-frameSize.height)/2);
frame.setVisible(true);
}
publicstaticvoidmain(String[]args){
SwingUtilities.invokeLater(newRunnable(){
publicvoidrun(){
try{
UIManager.setLookAndFeel(UIManager.
getSystemLookAndFeelClassName());
}catch(Exceptionexception){
exception.printStackTrace();
}
newApplication();
}
});
}
}
packagetest;
importjava.awt.BorderLayout;
importjava.awt.Dimension;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.JLabel;
importjava.awt.Color;
importjava.awt.Rectangle;
importjavax.swing.JButton;
importjavax.swing.JTextField;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
publicclassFrame1extendsJFrame{
JPanelcontentPane;
JLabeljLabel1=newJLabel();
JButtonjButton1=newJButton();
JTextFieldjTextField1=newJTextField();
publicFrame1(){
try{
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
}catch(Exceptionexception){
exception.printStackTrace();
}
}
privatevoidjbInit()throwsException{
contentPane=(JPanel)getContentPane();
contentPane.setLayout(null);
this.getContentPane().setBackground(newColor(139,154,255));
setSize(newDimension(400,300));
setTitle("测试");
jLabel1.setText("以前的数据");
jLabel1.setBounds(newRectangle(88,60,195,32));
jButton1.setBounds(newRectangle(70,175,195,33));
jButton1.setText("点我看看");
jButton1.addActionListener(newFrame1_jButton1_actionAdapter(this));
jTextField1.setText("jTextField1");
jTextField1.setBounds(newRectangle(88,109,199,31));
contentPane.add(jLabel1);
contentPane.add(jButton1);
contentPane.add(jTextField1);
}
publicvoidjButton1_actionPerformed(ActionEvente){
this.jLabel1.setText(this.jTextField1.getText());
this.jTextField1.setText("");
}
}
classFrame1_jButton1_actionAdapterimplementsActionListener{
privateFrame1adaptee;
Frame1_jButton1_actionAdapter(Frame1adaptee){
this.adaptee=adaptee;
}
publicvoidactionPerformed(ActionEvente){
adaptee.jButton1_actionPerformed(e);
}
}
编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。
(十进制数转二进制数的方式是用这个数除以2,余数就是二进制数的最低位,接着再用得到的商作为被除数去除以2,这次得到的余数就是次低位,如此循环,直到被除数为0为止。
其实,只要明白了打印出一个十进制数的每一位的方式(不断除以10,得到的余数就分别是个位,十位,百位),就很容易理解十进制数转二进制数的这种方式。
这个程序要考虑输入的字符串不能转换成一个十进制整数的情况,并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。
)
importjava.io.*;
classStringToBinary
{
staticbooleannum=true;
char[]c=null;
intx;
publicvoidisNumberic(Strings)//extendsNumberFormatException
{
c=s.toCharArray();
for(inti=0;i { if(Character.isDigit(c[i])==false) { num=false; System.out.println("Inputthestringisnotnumberic."); } } if(num==true&&Integer.parseInt(s) { num=true; } else { System.out.println("超出了int范围"); thrownewNumberFormatException(s); } } publicvoidstringToBinary(Strings2)//throwsNumberFormatException { Strings=newString(); x=Integer.parseInt(s2); while(x! =0) { if(x%2==1) { s+="1"; x=x/2; } elseif(x%2==0) { s+="0"; x=x/2; } } System.out.println("TheString: "+s2+"'sBinaryis: "); System.out.println(newStringBuffer(s).reverse()); } publicstaticvoidmain(String[]args) { Strings1=newString(); System.out.println("Pleaseinputthenumberstring: "); try { BufferedReaderbfr=newBufferedReader(newInputStreamReader(System.in)); s1=bfr.readLine(); /*if(s1==null) { System.out.println("Youinputthenumberstringisnull! "); thrownewNullPointerException(); }*/ } catch(Exceptione) { e.printStackTrace(); } StringToBinarystb=newStringToBinary(); stb.isNumberic(s1); if(num==true) { stb.stringToBinary(s1); } } } 练习数组在java中的应用.主要侧重于类型地转换 importjava.io.*; classContact { staticint[]num=newint[1024]; publicstaticvoidconvert() { StringBufferstrb=newStringBuffer();//利用构造函数与直接附值为NULL时其结果是不一样的。 for(inti=0;i { //System.out.println(num[i]); //strb+=num[i].toString()+"'";这一句其实是不对的,因为int型的是没有这个toString方法的。 strb=strb.append(num[i]+","); } System.out.println(strb); } publicstaticvoidmain(String[]args) { /*Stringstr;//如何改写成外部输入的方式。 如何将输入的数字串转换成整型数组。 System.out.println("Plesaeinputnumber: "); BufferedInputStreambis=newBufferedInputStream(newInputStream(System.in)); str=Integer(bis.read()); intlen=str.length(); for(inti=0;i { num[i]=Integer.parseInt(str.) } */ convert(); } } /* 注意点: 1、使用String与使用StringBuffer的区别; 2、改进数组附值由直接附值改为通过界面附值。 3、int型数组是没有什么方法使用的,因为他不是lang包的继续者。 */ 本题遇到的一些主要问题: 1、char数组的附值问题。 误以为是ch={a,b,c,x}这种方式附值。 2、对类的初始化顺序要不要的进行强化。 3、对方法的选择(由于对类不了解,所以应该使用什么样的方法通过查资料,最终是找到了解决的方法。 ) importjava.io.*; importjava.util.*; classFindChar { /*publicstaticvoidfind(char[]ch,charch1)//这个方法由于使用的Arrays.binarySearch()方法在使用前需要排序,那样就不能够正确返回所需要的结果。 { char[]c=newchar[1024]; charch0; c=ch; ch0=ch1; if(c==null||(c! =null&&c.length==0)) { System.out.println("Thearraryisnull! "); thrownewIllegalArgumentException(); } elseif(c[0]==ch1) { System.out.println("Thech1'spostion: "+0); } else { System.out.println("Thech1'spostion: "+Arrays.binarySearch(c,ch1)); } }*/ publicstaticvoidfind(char[]ch,charch1) { char[]c=newchar[1024]; charch0; inti; c=ch; ch0=ch1; booleanfirstChar=false; if(c==null||(c! =null&&c.length==0)) { System.out.println("Thearraryisnull! "); thrownewIllegalArgumentException(); } else for(i=0;i { if(firstChar==false&&c[i]==ch0) { firstChar=true; System.out.println("Thech1'spostion: "+i); } } if(firstChar==false) System.out.println(-1); } publicstaticvoidmain(String[]args) { //下边重新开始新的代码编写。 //这个当中遇到的一些问题: //1、char数组的附值问题。 误以为是ch={a,b,c,x}这种方式附值。 //2、对类的初始化顺序要不要的进行强化 char[]ch=newchar[10]; charch1='x'; //ch={'c'}; //find(ch,ch1); //ch={a,b,c,x};原来这种附值方式是int型数组附值的方式,难怪会报错。 ch="abx".toCharArray(); find(ch,ch1); ch="axbxab".toCharArray();//这种情况他所查找的字符位置就会问题,但下边那情况就不会出问题,不知道这是什么原因造成的。 System.out.println(ch.length);//上述问题这所以会出现是由于我使用binarySearch()方法的原因,因为他在查找所要的字符时是以 find(ch,ch1); ch="axxx".toCharArray(); find(ch,ch1); ch="zab".toCharArray(); find(ch,ch1); ch="".toCharArray(); find(ch,ch1); /*下边的代码是第一次经过大约两天的时间写的,当中出现了许多的问题,刚开始尝试利用Vector类来做,没有成功,后经查资料,利用Arrays类来做,但对报出异常这个问题 理解不够透彻,经咨询传智博客的老师才得知问题的症结所在,其实有许多东西不是你不可能做出来,关键在于你对概念的理解程度。 其实我在写这个程序时一直都在试探该去怎么做 因为我根本就不知道怎么样才能做,只是看着问题,根据他的思路,去找解决问题的方法,试探性的去解决。 出了问题然后再去想为什么,这恐怕也是一个必经的过程,至少在打劳基础的 时候是非常需要的。 另外有一个知识点就是: 怎么样来判断数组为空这个问题很重要。 /*FindCharfc=newFindChar(); Stringstr=null; char[]ch=newchar[1024]; charch1=0; System.out.println("Pleaseinputthecharsequence: "); try { BufferedReaderbfr=newBufferedReader(newInputStreamReader(System.in)); str=bfr.readLine(); ch=str.toCharArray(); } catch(Exceptione) { e.printStackTrace(); } System.out.println("Pleaseinputthechar: "); try { ch1=(char)System.in.read(); } catch(Exceptione) { e.printStackTrace(); } fc.find(ch,ch1);*/ } } 能过上面的这个程序的编写,我体会到了一些新的问题。 首先: 解决问题的思路太过单一,一直就只是想着Java类中会不会这这样的方法,当然能够找到这样的方法也会 学到不少东西,同时也是对Java基本类的理解和认识,但不能仅停留在这样一个表面,想通过一个方法就搞定一个 问题,这种思想,不可取。 以后的思路是这样一个过程,拿到一个问题,首先要分析出他解决问题的思路,当然这 个问
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 练习题