J2EE测试题习题1

import java.io.*;
import java.util.*;
class FindChar
{
 /*public static void find(char [] ch,char ch1) //这个方法由于使用的Arrays.binarySearch()方法在使用前需要排序,那样就不能够正确返回所需要的结果。
 {
  char [] c=new char[1024];
  char ch0;  
  c=ch;
  ch0=ch1;
  if(c==null||(c!=null&&c.length==0))
  {
   System.out.println("The arrary is null!");
   throw new IllegalArgumentException();
  }
  else if(c[0]==ch1)
  {
   System.out.println("The ch1's postion:"+0);
  }
  else
  {
  System.out.println("The ch1's postion:"+Arrays.binarySearch(c,ch1));
  }
     }*/
 public static void find(char [] ch,char ch1)
 {
  char [] c=new char[1024];
  char ch0;
  int i;
  c=ch;
  ch0=ch1;
  boolean firstChar=false;
  if(c==null||(c!=null&&c.length==0))
  {
   System.out.println("The arrary is null!");
   throw new IllegalArgumentException();
  }
  else
   for(i=0;i   {
    if(firstChar==false&&c[i]==ch0)
    {
     firstChar=true;
     System.out.println("The ch1's postion:"+i);
    }
   }
  if(firstChar==false)
  System.out.println(-1);
   
   
 }
 public static void main(String[] args)
 {
  //下边重新开始新的代码编写。
  //这个当中遇到的一些问题:
  //1、char数组的附值问题。误以为是ch={a,b,c,x}这种方式附值。
  //2、对类的初始化顺序要不要的进行强化
  char [] ch=new char[10];
  char ch1='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="ax xx".toCharArray();
  find(ch,ch1);

  ch="zab".toCharArray();
  find(ch,ch1);
  
  ch="".toCharArray();
  find(ch,ch1);

  /*下边的代码是第一次经过大约两天的时间写的,当中出现了许多的问题,刚开始尝试利用Vector类来做,没有成功,后经查资料,利用Arrays类来做,但对报出异常这个问题
  理解不够透彻,经咨询传智博客的老师才得知问题的症结所在,其实有许多东西不是你不可能做出来,关键在于你对概念的理解程度。其实我在写这个程序时一直都在试探该去怎么做
  因为我根本就不知道怎么样才能做,只是看着问题,根据他的思路,去找解决问题的方法,试探性的去解决。出了问题然后再去想为什么,这恐怕也是一个必经的过程,至少在打劳基础的
  时候是非常需要的。另外有一个知识点就是:怎么样来判断数组为空这个问题很重要。
  /*FindChar fc=new FindChar();
  String str=null;
  char [] ch=new char[1024];
  char ch1=0;
  
  System.out.println("Please input the char sequence :");
  try
  {
   BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
   str=bfr.readLine();
   ch=str.toCharArray();
   
  }
  catch (Exception e )
  {
   e.printStackTrace();
  }
  
  
  System.out.println("Please input the char :");
  try
  {
   ch1=(char)System.in.read();
  }
  catch (Exception e )
  {
   e.printStackTrace();
  }
  fc.find(ch,ch1);*/
  
   
 }
}

能过上面的这个程序的编写,我体会到了一些新的问题。

首先:解决问题的思路太过单一,一直就只是想着Java类中会不会这这样的方法,当然能够找到这样的方法也会

学到不少东西,同时也是对Java基本类的理解和认识,但不能仅停留在这样一个表面,想通过一个方法就搞定一个

问题,这种思想,不可取。以后的思路是这样一个过程,拿到一个问题,首先要分析出他解决问题的思路,当然这

个问题已经给出了思路,这点在解决问题当中是必不可少的。其次尽量通过各种方式,利用Java中的类来解决目前

的问题。

其次:刚开始的问题要不断的尝试,然后从中总结经验。

你可能感兴趣的:(Java基础习题练习,测试,exception,null,arrays,import,java)