大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java中信筆試題,自己做一下試試看

Java中信筆試題,自己做一下試試看

更新時間:2020-06-02 14:27:16 來源:動力節點 瀏覽2627次

1.判斷身份證:要么是15位,要么是18位,最后一位可以為字母,并寫程序提出其中的年月日。

答:我們可以用正則表達式來定義復雜的字符串格式,(\d{17}[0-9a-zA-Z]|\d{14}[0-9a-zA-Z])可以用來判斷是否為合法的15位或18位身份證號碼。

因為15位和18位的身份證號碼都是從7位到第12位為身份證為日期類型。這樣我們可以設計出更精確的正則模式,使身份證號的日期合法,這樣我們的正則模式可以進一步將日期部分的正則修改為[12][0-9]{3}[01][0-9][123][0-9],當然可以更精確的設置日期。

在jdk的java.util.Regex包中有實現正則的類,Pattern和Matcher。以下是實現代碼:

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest{
/**
* param args
*/
public static void main(String[]args){
//測試是否為合法的身份證號碼
String[]strs={"130681198712092019","13068119871209201x",
"13068119871209201","123456789012345","12345678901234x",
"1234567890123"};
Pattern p1=Pattern.compile("(\\d{17}[0-9a-zA-Z]|\\d{14}[0-9a-zA-Z])");
for(int i=0;i<strs.length;i++){
Matcher matcher=p1.matcher(strs<i>);
System.out.println(strs<i>+":"+matcher.matches());
}

Pattern p2=Pattern.compile("\\d{6}(\\d{8}).*");//用于提取出生日字符串
Pattern p3=Pattern.compile("(\\d{4})(\\d{2})(\\d{2})");//用于將生日字符串進行分解為年月日
for(int i=0;i&lt;strs.length;i++){
Matcher matcher=p2.matcher(strs<i>);
boolean b=matcher.find();
if(b){
String s=matcher.group(1);
Matcher matcher2=p3.matcher(s);
if(matcher2.find()){
System.out.println("生日為"+matcher2.group(1)+"年"
+matcher2.group(2)+"月"
+matcher2.group(3)+"日");
}
}
}
}
}

2.編寫一個程序,將a.txt文件中的單詞與b.txt文件中的單詞交替合并到c.txt文件中,a.txt文件中的單詞用回車符分隔,b.txt文件中用回車或空格進行分隔。

答:

package cn.itcast;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

public class MainClass{
public static void main(String[]args)throws Exception{
FileManager a=new FileManager("a.txt",new char[]{'\n'});
FileManager b=new FileManager("b.txt",new char[]{'\n',''});
FileWriter c=new FileWriter("c.txt");
String aWord=null;
String bWord=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();
}
}
class FileManager{
String[]words=null;
int pos=0;
public FileManager(String filename,char[]seperators)throws Exception{
File f=new File(filename);
FileReader reader=new FileReader(f);
char[]buf=new char[(int)f.length()];
int len=reader.read(buf);
String results=new String(buf,0,len);
String regex=null;
if(seperators.length&gt;1){
regex=""+seperators[0]+"|"+seperators[1];
}else{
regex=""+seperators[0];
}
words=results.split(regex);
}

public String nextWord(){
if(pos==words.length)
return null;
return words[pos++];
}
}

3.編寫一個程序,將d:\java目錄下的所有.java文件復制到d:\jad目錄下,并將原來文件的擴展名從.java改為.jad。

答:listFiles方法接受一個FileFilter對象,這個FileFilter對象就是過慮的策略對象,不同的人提供不同的FileFilter實現,即提供了不同的過濾策略。

import java.io.File
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Jad2Java{
public static void main(String[]args)throws Exception{
File srcDir=new File("java");
if(!(srcDir.exists()&&srcDir.isDirectory()))
throw new Exception("目錄不存在");
File[]files=srcDir.listFiles(
new FilenameFilter(){
public boolean accept(File dir,String name){
return name.endsWith(".java");
}
}
);

System.out.println(files.length);
File destDir=new File("jad");
if(!destDir.exists())destDir.mkdir();
for(File f:files){
FileInputStream fis=new FileInputStream(f);
String destFileName=f.getName().replaceAll("\\.java$",".jad");
FileOutputStream fos=new FileOutputStream(new File(destDir,destFileName));
copy(fis,fos);
fis.close();
fos.close();
}
}

private static void copy(InputStream ips,OutputStream ops)throws Exception{
int len=0;
byte[]buf=new byte[1024];
while((len=ips.read(buf))!=-1){
ops.write(buf,0,len);
}
}
}

由本題總結的思想及策略模式的解析:

(1)class jad2java{ ,得到某個目錄下的所有的java文件集合

①得到目錄File srcDir=new File("d:\\java");

②得到目錄下的所有java文件:File[]files=srcDir.listFiles(new MyFileFilter());

③只想得到.java的文件:class MyFileFilter implememyts FileFilter{

public boolean accept(File pathname){
return pathname.getName().endsWith(".java")
}
}

(2)將每個文件復制到另外一個目錄,并改擴展名

①得到目標目錄,如果目標目錄不存在,則創建之

②根據源文件名得到目標文件名,注意要用正則表達式,注意.的轉義。

③根據表示目錄的File和目標文件名的字符串,得到表示目標文件的File。

  • //要在硬盤中準確地創建出一個文件,需要知道文件名和文件的目錄。

④將源文件的流拷貝成目標文件流,拷貝方法獨立成為一個方法,方法的參數采用抽象流的形式。

  • //方法接受的參數類型盡量面向父類,越抽象越好,這樣適應面更寬廣。
  • }

分析listFiles方法內部的策略模式實現原理

File[]listFiles(FileFilter filter){
File[]files=listFiles();
//Arraylist acceptedFilesList=new ArrayList();
File[]acceptedFiles=new File[files.length];
int pos=0;
for(File file:files){
boolean accepted=filter.accept(file);
if(accepted){
//acceptedFilesList.add(file);
acceptedFiles[pos++]=file;
}
}

Arrays.copyOf(acceptedFiles,pos);
//return(File[])accpetedFilesList.toArray();
}

Java中信筆試題,自己做一下試試看

以上就是動力節點java培訓機構的小編針對“Java中信筆試題,自己做一下試試看”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美色射| 日韩a无吗一区二区三区 | 国内精品久久久久久久久久影视 | 日韩视频观看 | 在线毛片免费观看 | 老司机午夜免费视频 | 逼毛片 | 日韩免费黄色片 | 婷婷色中文字幕 | 大伊香蕉在线精品不卡视频 | 婷婷伊人五月 | 国产精品一区二区不卡 | 99免费视频观看 | 最新777奇米影视四色 | 欧美久在线观看在线观看 | 九九热精品视频在线播放 | 福利院肉动漫视频在线观看 | 国产亚洲精品美女2020久久 | 久操精品视频 | 国产欧美一区二区久久 | 人人干天天操 | 99久久做夜夜爱天天做精品 | 四房激情网 | 国内精品免费视频 | 欧美专区亚洲专区 | 精品亚洲欧美中文字幕在线看 | 亚洲精品丝袜在线一区波多野结衣 | 成人影院在线免费观看 | 亚洲天天做夜夜做天天欢人人 | 99久热这里只有精品免费 | 亚洲特级aaaaaa毛片 | 亚洲精品图 | 久久这里只有精品国产 | 免费观看日本污污ww网站精选 | 国产精品亚洲精品久久成人 | 漂亮女大学一级毛片 | 婷婷四房综合激情五月性色 | a级精品九九九大片免费看 a级毛片高清免费视频 | 免费夜色污私人影院网站 | 爱做久久久久久久久久 | 中文字幕 国产精品 |