【问题标题】:Why am i getting " Duplicate modifier for the type Test" and how to fix it为什么我得到“类型测试的重复修饰符”以及如何修复它
【发布时间】:2016-07-12 00:05:19
【问题描述】:

如果给定的“字符串”是字谜,我试图创建一个返回 true 的方法。不幸的是,我什至无法对其进行测试,而且我不知道出了什么问题。左边的标记说:

此行有多个标记 - 断点:测试 - 复制修饰符 输入测试

这里是源代码:

package zajecia19;

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.HashMap;
public 
public class Test {
    public static boolean Anagraamy(String s1, String s2) {
        if (s1.length() != s2.length()) {
            return false;
        }
        HashMap<Character, Integer> map = new HashMap<>();
        for (int i = 0; i < s1.length(); i++) {
            if (map.containsKey(s1.charAt(i))) {
                map.put(s1.charAt(i), map.get(s1.charAt(i)) + 1);
            } else {
                map.put(s1.charAt(i), 1);
            }
            if (map.containsKey(s2.charAt(i))) {
                map.put(s2.charAt(i), map.get(s2.charAt(i)) - 1);
            } else {
                map.put(s2.charAt(i), -1);
            }
        }
        for( Integer value: map.values()){
            if(value != 0 ){
                return false;
            }
        }

        return true;

    }

    public static void main(String[] args) {
        try (BufferedReader br = new BufferedReader(new FileReader("slowa2"))) {
        System.out.println( Anagraamy("abba", "babb"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

【问题讨论】:

  • 从您的代码中删除多余的public
  • 在学习 Java 时有一点非常重要:相信编译器。如果它告诉您一些“重复”;并给你一个行号;而不是转向那条线,看看那里有什么;也许之前的行是什么。此外:避免在运行编译器之前编写大量代码。始终尝试只编写小块(您认为:这应该编译);然后运行编译器;修正错误;如果可能的话,调整代码来测试它。先写100行代码;然后开始修复错误会使整个事情更加对你来说更难!

标签: java anagram


【解决方案1】:

因为你有

public
public 

那里。

解决这个问题的明显方法:删除第一个。下一次:注意编译器试图告诉你的内容。

【讨论】:

  • @SadiqAli 主要是关于堆栈溢出,有点关于quora。为什么要问?
  • 看到这个,只是想象你在课堂上摇头。
  • 老实说,我不介意。这个问题写得很好,格式也很好。也很有礼貌。新手提出的许多问题要糟糕得多。
猜你喜欢
  • 1970-01-01
  • 2021-11-01
  • 2022-01-09
  • 2014-08-22
  • 1970-01-01
  • 1970-01-01
  • 2022-11-20
相关资源
最近更新 更多