У меня есть файл fasta, который я хочу разобрать в ArrayList
, каждая позиция имеет всю последовательность.Последовательности являются многострочными строками, и я не хочу включать идентификационную строку в строку, которую я храню.
Мой текущий код разбивает каждую строку на другую позицию в ArrayList
.Как сделать так, чтобы каждая позиция обозначалась символом >
?
Фастовые файлы имеют вид:
>identification of a sequence 1
line1
line3
>identification of a sequence 2
line4
>identification of a sequence 3
line5
line6
line7
public static void main(String args[]) {
String fileName = "fastafile.fasta";
List<String> list = new ArrayList<>();
try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
//1. filter line 3
//2. convert all content to upper case
//3. convert it into a List
list = stream
.filter(line -> !line.startsWith(">"))
.map(String::toUpperCase)
.collect(Collectors.toList());
} catch (IOException e) {
e.printStackTrace();
}
list.forEach(System.out::println);
}
Для приведенного выше примера мыхотел бы вывод такой, что:
System.out.println(list.size()); // this would be 3
System.out.println(list.get(0)); //this would be line1line3
System.out.println(list.get(1)); //this would be line4
System.out.println(list.get(2)); //this would be line5line6line7