在HackerRank上提交代码时,我收到了这个编译错误:
错误:类HackerRank是公共的,应该在名为HackerRank.java的文件中声明
我该怎样摆脱它?我已经尝试将类的名称更改为main
,但它仍然给出了相同的编译错误。
import java.io.IOException;
import java.util.Scanner;
public class HackerRank {
public static void main(String a[]) throws IOException, Exception {
Scanner in = new Scanner (System.in);
int test = in.nextInt();
Scanner in1 = new Scanner(System.in);
if (test < 1 || test > 10) {
throw new Exception("Illegal test cases");
}
while (test-- > 0) {
// System.out.println("Enter patient dna");
String patient = in1.nextLine().toLowerCase();
// System.out.println("Enter virus dna");
String virus = in1.nextLine().toLowerCase();
int l = virus.length();
int i = 0;
int count = 0;
if (patient.length() > 100000 || virus.length() > 100000) {
throw new Exception("Input length out of bounds");
}
for (i = 0; i < patient.length() - virus.length(); i++) {
String sub = patient.substring(i, i + l);
count = 0;
for (int j = 0; j < sub.length(); j++) {
if (virus.charAt(j) != sub.charAt(j)) {
count++;
}
}
if (count == 0 || count == 1) {
System.out.print(i + " ");
}
}
System.out.println();
}
}
}
答案 0 :(得分:0)
一个文件中只能声明一个类是公共的,并且他的名字必须与文件名一致(没有扩展名)。
尝试将文件重命名为HackerRank.java
。
或者,您可以更改您的公共课程&#39;名:
public class YourFileName{
...
}
答案 1 :(得分:0)
Java要求每个公共类都有自己的文件,并且文件名与其包含的公共类的名称相匹配。如果您的文件未被调用&#34; HackerRank.java&#34;,请尝试将其重命名为该文件并查看您的错误是否消失。
答案 2 :(得分:0)
您遇到的问题可能出于以下两个原因
答案 3 :(得分:0)
将您的类命名为Solution,hackerrank提供此link中指定的环境。
import java.io.IOException;
import java.util.Scanner;
public class Solution {
...
}