# 練習問題の解答例_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);
}
}
}