我有一个字符串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
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));
}
}
}
有什么提示吗?
我认为您的问题出在list.get(I+n-1)
中。您当前正在迭代,以便每个子序列的开始范围从0
到list.size()-1
。最后一个有意义的子序列是list.size()-n
到list.size()-1
位置的n
字符。
for (int i = 0; i < list.size() - n; i++) {
System.out.println(ss.indexOf(list.get(i))
+ " thru " + ss.lastIndexOf(list.get(i + n - 1)) + " : "
+ list.get(i));
}
lastIndexOf 方法 在一个字符串中的指定位置从后向前搜索,返回指定的字符串值最后出现的位置。 语法: stringObject.lastIndexOf( search_value, from_index ); 参数说明: search_value - 必需。规定需检索的字符串值。 from_index - 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 str
描述 (Description) Javascript数组lastIndexOf()方法返回可在数组中找到给定元素的最后一个索引,如果不存在,则返回-1。 从fromIndex开始向后搜索数组。 语法 (Syntax) 其语法如下 - array.lastIndexOf(searchElement[, fromIndex]); 参数细节 (Parameter Details) searchEle
描述 (Description) 此方法接受子字符串并返回其在调用String对象中last出现的索引。 它还接受一个可选参数fromIndex来开始搜索,如果找不到该值,则返回-1。 语法 (Syntax) 下面给出了JavaScript的lastIndexOf()方法的语法。 我们可以使用CoffeeScript代码中的相同方法。 string.lastIndexOf(searchValue[
描述 (Description) 此方法接受子字符串并返回其在调用String对象中last出现的索引。 它还接受一个可选参数fromIndex来开始搜索,如果找不到该值,则返回-1。 语法 (Syntax) 下面给出了JavaScript的lastIndexOf()方法的语法。 我们可以使用CoffeeScript代码中的相同方法。 string.lastIndexOf(searchValue[
lastIndexOf()方法返回在数组中可以找到给定元素的最后一个索引,如果不存在则返回-1。 从fromIndex开始向后搜索数组。 语法 (Syntax) array.lastIndexOf(searchElement[, fromIndex]); 参数 (Parameters) searchElement - 要在数组中定位的元素。 fromIndex - 开始向后搜索的索引。 默认
此方法返回指定值最后一次出现的调用String对象内的索引,从fromIndex开始搜索,如果未找到该值则返回-1。 语法 (Syntax) string.lastIndexOf(searchValue[, fromIndex]) 参数细节 (Argument Details) searchValue - 表示要搜索的值的字符串。 fromIndex - 调用字符串中用于开始搜索的位置。 它可以