更新时间:2020-03-19 10:31:59 来源:动力节点 浏览2582次
编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。
  packagecn.itcast;
  importjava.io.File;
  importjava.io.FileReader;
  importjava.io.FileWriter;
  publicclassMainClass{
  publicstaticvoidmain(String[]args)throwsException{
  FileManagera=newFileManager("a.txt",newchar[]{'\n'});
  FileManagerb=newFileManager("b.txt",newchar[]{'\n',''});
  FileWriterc=newFileWriter("c.txt");
  StringaWord=null;
  StringbWord=null;
  while((aWord=a.nextWord())!=null){
  c.write(aWord+"\n");
  bWord=b.nextWord();
  if(bWord!=null)
  c.write(bWord+"\n");
  }
  while((bWord=b.nextWord())!=null){
  c.write(bWord+"\n");
  }
  c.close();
  }
  }
  classFileManager{
  String[]words=null;
  intpos=0;
  publicFileManager(Stringfilename,char[]seperators)throwsException{
  Filef=newFile(filename);
  FileReaderreader=newFileReader(f);
  char[]buf=newchar[(int)f.length()];
  intlen=reader.read(buf);
  Stringresults=newString(buf,0,len);
  Stringregex=null;
  if(seperators.length>1){
  regex=""+seperators[0]+"|"+seperators[1];
  }else{
  regex=""+seperators[0];
  }
  words=results.split(regex);
  }
  publicStringnextWord(){
  if(pos==words.length)
  returnnull;
  returnwords[pos++];
  }
  }编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad。
listFiles方法接受一个FileFilter对象,这个FileFilter对象就是过虑的策略对象,不同的人提供不同的FileFilter实现,即提供了不同的过滤策略。
  importjava.io.File;
  importjava.io.FileInputStream;
  importjava.io.FileOutputStream;
  importjava.io.FilenameFilter;
  importjava.io.IOException;
  importjava.io.InputStream;
  importjava.io.OutputStream;
  publicclassJad2Java{
  publicstaticvoidmain(String[]args)throwsException{
  FilesrcDir=newFile("java");
  if(!(srcDir.exists()&&srcDir.isDirectory()))
  thrownewException("目录不存在");
  File[]files=srcDir.listFiles(
  newFilenameFilter(){
  publicbooleanaccept(Filedir,Stringname){
  returnname.endsWith(".java");
  }
  }
  );
  System.out.println(files.length);
  FiledestDir=newFile("jad");
  if(!destDir.exists())destDir.mkdir();
  for(Filef:files){
  FileInputStreamfis=newFileInputStream(f);
  StringdestFileName=f.getName().replaceAll("\\.java$",".jad");
  FileOutputStreamfos=newFileOutputStream(newFile(destDir,destFileName));
  copy(fis,fos);
  fis.close();
  fos.close();
  }
  }
  privatestaticvoidcopy(InputStreamips,OutputStreamops)throwsException{
  intlen=0;
  byte[]buf=newbyte[1024];
  while((len=ips.read(buf))!=-1){
  ops.write(buf,0,len);
  }
  }
  }编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉的半个”。
  首先要了解中文字符有多种编码及各种编码的特征。
  假设n为要截取的字节数。
  publicstaticvoidmain(String[]args)throwsException{
  Stringstr="我a爱中华abc我爱传智def';
  Stringstr="我ABC汉";
  intnum=trimGBK(str.getBytes("GBK"),5);
  System.out.println(str.substring(0,num));
  }
  publicstaticinttrimGBK(byte[]buf,intn){
  intnum=0;
  booleanbChineseFirstHalf=false;
  for(inti=0;i<n;i++)
  {
  if(buf[i]<0&&!bChineseFirstHalf){
  bChineseFirstHalf=true;
  }else{
  num++;
  bChineseFirstHalf=false;
  }
  }
  returnnum;
  }递归算法题
第1个人10,第2个比第1个人大2岁,依次递推,请用递归方式计算出第8个人多大?
  packagecn.itcast;
  importjava.util.Date;
  publicclassA1{
  publicstaticvoidmain(String[]args)
  {
  System.out.println(computeAge(8));
  }
  publicstaticintcomputeAge(intn)
  {
  if(n==1)return10;
  returncomputeAge(n-1)+2;
  }
  }
  publicstaticvoidtoBinary(intn,StringBufferresult)
  {
  if(n/2!=0)
  toBinary(n/2,result);
  result.append(n%2);
  }以上就是动力节点Java培训机构小编介绍的“三道Java递归算法笔试题”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
						Java实验班
						0基础 0学费 15天面授
						Java就业班
						有基础 直达就业
						Java夜校直播班
						业余时间 高薪转行
						Java在职加薪班
						工作1~3年,加薪神器
						Java架构师班
						工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习