【发布时间】:2018-07-03 13:32:33
【问题描述】:
我有一个字符串CCAATA CCGT,我正在尝试获取连续子序列的固定长度n。然后,我想得到这样的东西:
该字符串中每个子序列的索引。 0-3、1-4、2-5等
0 thru 3 : CCAA
1 thru 4 : CAAT
2 thru 5 : AATA
3 thru 6 : ATAC
4 thru 7 : TACC
5 thru 8 : ACCG
6 thru 9 : CCGT
列表大小为 7。在这里,我循环遍历列表并获取索引和 lastIndexOf。之后,3 thru 6 : ATAC,我得到了
线程“main”中的异常 java.lang.IndexOutOfBoundsException:索引:7,大小:7
for (int i = 0; i < list.size(); i++) {
System.out.println(ss.indexOf(list.get(i))
+ " thru " + ss.lastIndexOf(list.get(i + n - 1)) + " : "
+ list.get(i));
演示:
import java.util.ArrayList;
public class Subsequences {
public static void main(String[] args) {
String s = "CCAATA CCGT";
ArrayList<String> list = new ArrayList<String>(); // list of subsequence
int n = 4; // subsequences of length
String ss = s.replaceAll("\\s+", "");
String substr = null;
for (int i = 0; i <= ss.length() - n; i++) {
substr = ss.substring(i, i + n);
list.add(substr);
}
for (int i = 0; i < list.size(); i++) {
System.out.println(ss.indexOf(list.get(i))
+ " thru " + ss.lastIndexOf(list.get(i + n - 1)) + " : "
+ list.get(i));
}
}
}
有什么提示吗?
【问题讨论】: