Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从字谜列表中删除括号_Java - Fatal编程技术网

Java 从字谜列表中删除括号

Java 从字谜列表中删除括号,java,Java,我在移除支架时遇到问题 public class Main { public static void main(String[] args) throws IOException { getAnagrams(new InputStreamReader(new URL("http://www.puzzlers.org/pub/wordlists/unixdict.txt").openStream(), StandardCharsets.UT

我在移除支架时遇到问题

public class Main {

    public static void main(String[] args) throws IOException {
        getAnagrams(new InputStreamReader(new URL("http://www.puzzlers.org/pub/wordlists/unixdict.txt").openStream(),
                StandardCharsets.UTF_8)).forEach(System.out::println);
    }

    private static String canonicalize(String string) {
        return Stream.of(string.split("")).sorted().collect(Collectors.joining());
    }

    public static List<Set<String>> getAnagrams(Reader rr) {
        Map<String, Set<String>> mapa = new BufferedReader(rr).lines().flatMap(Pattern.compile("\\W+")::splitAsStream)
                .collect(Collectors.groupingBy(Main::canonicalize, Collectors.toSet()));
        return mapa.values().stream().filter(lista -> lista.size() > 1).collect(Collectors.toList());
    }
}
公共类主{
公共静态void main(字符串[]args)引发IOException{
getAnagrams(新的InputStreamReader(新的URL)(“http://www.puzzlers.org/pub/wordlists/unixdict.txt“”。openStream(),
formeach(System.out::println);
}
私有静态字符串规范化(字符串){
返回Stream.of(string.split(“”).sorted().collect(Collectors.joining());
}
公共静态列表getAnagrams(读取器rr){
Map mapa=new BufferedReader(rr).lines().flatMap(Pattern.compile(“\\W+”)::splitAsStream)
.collect(Collectors.groupingBy(Main::canonicalize,Collectors.toSet());
返回mapa.values().stream().filter(lista->lista.size()>1.collect(Collectors.toList());
}
}
输出是

[仓鼠,阿默斯特]
[生殖器,明胶]

应该是这样

仓鼠阿姆赫斯特
生殖明胶


这是因为
forEach(System.out::println)
Set
calss中调用
toString()
方法

将此方法添加到类中

public static void println(Set<String> items) {
    for (String item : items) {
        System.out.print(item + " ");
    }
    System.out.println();
}

这是因为
forEach(System.out::println)
Set
calss中调用
toString()
方法

将此方法添加到类中

public static void println(Set<String> items) {
    for (String item : items) {
        System.out.print(item + " ");
    }
    System.out.println();
}

您只需打印出集合,有getAngarams()返回字符串集合列表,有许多方法可以获得不带括号的原始元素,其中一种可能是迭代器:

替换您的:

getAnagrams(new InputStreamReader(new URL("http://www.puzzlers.org/pub/wordlists/unixdict.txt").openStream(),
        StandardCharsets.UTF_8)).forEach(System.out::println);
与:


您只需打印出集合,有getAngarams()返回字符串集合列表,有许多方法可以获得不带括号的原始元素,其中一种可能是迭代器:

替换您的:

getAnagrams(new InputStreamReader(new URL("http://www.puzzlers.org/pub/wordlists/unixdict.txt").openStream(),
        StandardCharsets.UTF_8)).forEach(System.out::println);
与:


不需要额外的方法,他只需更改他的lambda。是的,谢谢。不需要额外的方法,他只需更改他的lambda。是的,谢谢。