黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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

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

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

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中信筆試題,自己做一下試試看”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: www.黄色在线观看 | 成熟女人50岁一级毛片不卡 | 18岁免费网站| 天天操天天舔 | 久久99国产亚洲精品观看 | 草色在线 | 香蕉网站99视频丝瓜视频 | 久久成人亚洲香蕉草草 | 午夜琪琪| 特级毛片ww特级毛片w免费版 | 高h超辣bl文 | 狠狠躁天天躁夜夜躁夜天战 | 欧美久久一区二区 | 亚洲欧洲免费视频 | 中文字幕日韩一区 | 亚洲成a人片在线网站 | 欧美二级| 噜噜噜色噜噜噜久久 | 国产一区二区久久久 | 香蕉欧美 | 亚洲欧美日韩在线一区 | 欧美曰韩 | 一级女性生活片 | 在线观看麻豆国产精品 | 最黄毛片 | 黄片a级毛片 | 亚洲日本中文字幕区 | 国产高清一区二区三区免费视频 | 亚洲欧美18v中文字幕高清 | 成人精品免费网站 | 欧美高清在线精品一区二区不卡 | 国产91精品系列在线观看 | 日韩精品视频观看 | 笫一次爽女人免费视频 | 制服 丝袜 亚洲 中文 综合 | 国产成人永久免费视频 | 草草在线视频 | 日日噜噜夜夜狠狠久久aⅴ 日日噜噜夜夜狠狠久久丁香七 | 128tv在线观看 | 天天爽天天爱 | 成人三级在线 |