我正在尝试为程序创建一个方法,其中DNAstrand对象中的碱基与较小的碱基串(这将是参数)进行比较,并且它将在DNAstrand对象的碱基中搜索模式。一旦找到模式,我希望它返回DNAStrand对象中模式开始的位置编号。我到目前为止已尝试过,但我的代码无效。这是我到目前为止的代码(注意我在另一个方法中使用另一种方法)
for(int position =0; position + substrand.getLength() < (this.getLength()- substrand.getLength() +1); position ++){
if(matchAt(substrand)){
return position;
}
} return -1;
}
protected boolean matchAt(DNAStrand substrand) {
for (int i = 0; i < (this.getLength()- substrand.getLength() +1); i++) {
if (this.getBaseAt(i) != substrand.getBaseAt(i)) {
return false;
} }return true;
}
答案 0 :(得分:0)
您正在寻找字符串中的子字符串。
您可以使用String的.indexOf()函数:
protected int matchAt(string substrand){
return dnastrand.indexOf(substrand)
}
我不知道对象如何处理特定于您的类的toString()实现,但这是一般的想法。你根本不需要for循环,只需返回int。
它返回字符串中第一个子字符串实例的索引。