# 練習問題の解答例_1 ## 練習問題3までをやってみた例 package hellow_world; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public class Main { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ try{ File file = new File("C:\\ecoli-test.txt"); BufferedReader br = new BufferedReader(new FileReader(file)); String genome=""; String str = br.readLine(); while(str != null){ //System.out.println(str); str = br.readLine(); genome = genome + str; } br.close(); //制限酵素サイト検索 int oldPos = 0; int cntOver10kbp = 0; int cntUnder10kbp = 0; for(int i=0; i= 10000){ cntOver10kbp++; }else{ cntUnder10kbp++; } oldPos=i; } } System.out.println("10kbp以上は"+cntOver10kbp+"箇所、10kbp未満は"+cntUnder10kbp+"箇所"); }catch(Exception e){ System.out.println(e); } } } ## 練習問題5までと、文字列連結の高速化を行った例 import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public class Main1 { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ try{ File file = new File("C:\\ecoli.fasta"); BufferedReader br = new BufferedReader(new FileReader(file)); StringBuilder sb = new StringBuilder(); String str = br.readLine(); while(str != null){ str=br.readLine(); sb.append(str); } br.close(); String ecoli=new String(sb); System.out.println(ecoli.length()); int nBam=0; //配列に入ったBamHIの数を記憶しておく int[] arrBam=new int[10000]; //大きめの配列を準備しておく for(int i=0; iarrBam[i] && arrBam[i+1]>arrHind[j+1] && arrBam[i]>arrHind[j] && arrHind[j+1]-arrBam[i]>=10*1000){ System.out.println("nBam:"+i+", nHind:"+j+", arrBam:"+arrBam[i]+", arrHind:"+arrHind[j]); n1++; } } } System.out.println(n1); int n2=0; //左側がHindIII、右側がBamHIで切断される場合を検索 for(int j=0;jarrHind[j] && arrHind[j+1]>arrBam[i+1] && arrHind[j]>arrBam[i] && arrBam[i+1]-arrHind[j]>=10*1000){ System.out.println("nBam:"+i+", nHind:"+j+", arrBam:"+arrBam[i]+", arrHind:"+arrHind[j]); n2++; } } } System.out.println(n2); System.out.println(n1+n2); }catch(Exception e){ System.out.println(e); } } }