【发布时间】:2015-11-13 13:12:44
【问题描述】:
我需要一些关于如何为我正在编写的迷你搜索引擎编写主要方法的指针。这是我的代码:
public class StringSearch {
private String s1 = "ACTGACGCAG";
private String s2 = "TCACAACGGG";
private String s3 = "GAGTCCAGTT";
public static void main(String[] args) {
System.out.println("Welcome! The strings you started with are:\n" + s1 + "\n" + s2 + "\n" + s3);
}
public void search() {
do {
for(int i = 0; i < s1.length() - 4; i++) {
int d = 0;
String subStr = s1.substring(0 + i, 4 + i);
do{
for (int iSub = 0; iSub < 4; i++){
if (subStr.charAt(iSub) != (subStr.charAt(iSub))) {
d += 1;
}
}
}while(d < 2);
if(s2.contains(subStr) && s3.contains(subStr)) {
System.out.println(subStr + "is in all 3 lists.");
}
}
}while (s1.length() - 4 < 6);
System.out.println("Task Complete.");
}
}
我的想法是我有一组 3 个字符串开始,我需要创建一个 4 个字符的子字符串并将其与所有 3 个字符串进行比较,以查看它是否包含在每个字符串中,至少 3/4字母匹配。例如,如果我取 s1 (ACTG) 的前 4 个字符,那么 'CCTG'、'ACAG'、'ACTA'、'AATG' 都是有效的搜索结果,会被返回。
我遇到的问题是主要方法。我究竟应该如何在语法上实例化搜索方法?我试过 StringSearch s1 = new StringSearch();然后是 s1.search();但没有得到任何结果。此外,当我尝试在 println 中引用原始字符串时,它说我无法从静态上下文中引用它们。这里是Java新手,非常感谢具体的帮助。
【问题讨论】:
-
特别是,
new StringSearch().search()在你的 main 方法中是正确的;它不起作用的原因是您的实际search方法可能有问题。阅读链接。 -
不要添加链接,因为这些链接随时可能下线。其他人将来将无法从中受益。
-
@GoyalVicky 该规则仅用于答案,这是一条评论,应该可以随时删除它们。此外,那是Eric Lippert's 博客,我希望它会存在一段时间。
-
@durron597 如果您可以提供博客的要点作为解决方案的一部分并提供参考,而不是在评论中提供第三方链接的解决方案,那会不会更好到那个博客,这样即使它离线,我们也有解决方案,以便将来其他人也可以从中受益。我的意思是这完全取决于你。
标签: java search syntax main-method