Java 一个长度的连续子序列
我正在解决一个问题,但我不明白连续子序列是如何工作的。比如说,Java 一个长度的连续子序列,java,regex,algorithm,Java,Regex,Algorithm,我正在解决一个问题,但我不明白连续子序列是如何工作的。比如说, 公共类子序列{ 公共静态void main(字符串[]args){ 字符串s=“ccata CCGT”; 字符串ss=s.replaceAll(“\\s+”,“”); int n=4;//长度的子序列 对于(int i=0;i它确保子字符串仅包含字母(无空格)您不明白循环的具体内容是什么?您了解什么?您是否尝试过调试它?如果给定的序列是ccataccgt,则可以形成连续(不间断)循环长度为4的子序列只需从序列中提取4个连续的字母。
公共类子序列{
公共静态void main(字符串[]args){
字符串s=“ccata CCGT”;
字符串ss=s.replaceAll(“\\s+”,“”);
int n=4;//长度的子序列
对于(int i=0;i它确保子字符串仅包含字母(无空格)您不明白循环的具体内容是什么?您了解什么?您是否尝试过调试它?如果给定的序列是ccataccgt
,则可以形成连续(不间断)循环长度为4的子序列只需从序列中提取4个连续的字母。例如,从索引0开始的子序列是CCAA
,从索引1开始的子序列是CAAT
,从索引2开始的子序列是AATA
,依此类推。为什么每次都要跳过一个字符。“ccataccgt”=CCAA、CAAT、AATA、ATAC?我对这件事感到迷茫
public class Subsequences {
public static void main(String[] args) {
String s = "CCAATA CCGT";
String ss = s.replaceAll("\\s+","");
int n = 4; // subsequences of length
for (int i=0; i <= ss.length() - n; i++) {
String substr = ss.substring(i, i + n);
if (substr.matches("[a-zA-Z]+")) {
System.out.println(substr);
}
}
}
}
for (int i=0; i <= ss.length() - n; i++) {
String substr = ss.substring(i, i + n);
if (substr.matches("[a-zA-Z]+")) {
System.out.println(substr);
}
}