错误:类HackerRank是公共的,应该在名为HackerRank.java的文件中声明

时间:2014-08-23 18:00:02

标签: java

在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();
        }
    }
}

4 个答案:

答案 0 :(得分:0)

一个文件中只能声明一个类是公共的,并且他的名字必须与文件名一致(没有扩展名)。

尝试将文件重命名为HackerRank.java

或者,您可以更改您的公共课程&#39;名:

public class YourFileName{
    ...
}

答案 1 :(得分:0)

Java要求每个公共类都有自己的文件,并且文件名与其包含的公共类的名称相匹配。如果您的文件未被调用&#34; HackerRank.java&#34;,请尝试将其重命名为该文件并查看您的错误是否消失。

答案 2 :(得分:0)

您遇到的问题可能出于以下两个原因

  1. 您的班级HackerRank是公开的,因此您的文件名可能与您的班级名称不同。您的文件名必须是HackerRank.java
  2. 或者您可能在同一个文件中有两个类,并且都是公开的。

答案 3 :(得分:0)

将您的类命名为Solution,hackerrank提供此link中指定的环境。

import java.io.IOException;
import java.util.Scanner;

public class Solution {
    ...
}