gpt4 book ai didi

java - Map.Entry 条目和 lambda 表达式无法解析

转载 作者:行者123 更新时间:2023-12-02 09:56:43 25 4
gpt4 key购买 nike

我不知道我在这里做错了什么。 ForEach() 在 Eclipse Luna 甚至 CMD 上带有 lambda 表达式“无法解析条目”。

Map<Character, Integer> map = new HashMap<>();
while(sc.hasNextLine()) {
String str = sc.nextLine().replaceAll("\\s+", "").replaceAll("\\r\\n+", "");
char[] arr = str.toCharArray();
len += arr.length;

for(int i = 0; i < len; i++){
char ch = str.charAt(i);
if(map.containsKey(ch))
map.put(ch, map.get(ch) + 1);
else
map.put(ch, 1);
}

map.entrySet().stream()
.sorted(Map.Entry. <Character, Integer> comparingByValue().reversed())
.limit(5)
.forEach(entry -> System.out.printf("'%c' : %d%n", entry.getKey(), entry.getValue()));

最佳答案

它对我进行查找,直到字符串中的 5 个字符没有空格超过 5 个字符,它会抛出以下异常

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 6
at java.lang.String.charAt(String.java:658)
at com.rmi.service.imp.MyServcieImp.main(MyServcieImp.java:29)

这是你的代码

`公共(public)类 MyServcieImp {

public static void main(String[] args) {


Scanner sc= new Scanner(System.in);
int len=0;
Map<Character, Integer> map = new HashMap<>();
while(sc.hasNextLine()) {
String str = sc.nextLine().replaceAll("\\s+", "").replaceAll("\\r\\n+", "");
char[] arr = str.toCharArray();
len += arr.length;

for(int i = 0; i < len; i++){
char ch = str.charAt(i);
if(map.containsKey(ch))
map.put(ch, map.get(ch) + 1);
else
map.put(ch, 1);
}

map.entrySet().stream()
.sorted(Map.Entry. <Character, Integer> comparingByValue().reversed())
.limit(5)
.forEach(entry -> System.out.printf("'%c' : %d%n", entry.getKey(), entry.getValue()));
}
}

} `

你想要什么?打印超过 5 个还是什么?

如果你想打印所有字符串长度,只需替换

char ch = str.charAt(i);

map.entrySet().stream()
.sorted(Map.Entry. <Character, Integer> comparingByValue().reversed())
.limit(5)
.forEach(entry -> System.out.printf("'%c' : %d%n", entry.getKey(), entry.getValue()));

char ch = arr[i];

map.entrySet().stream()
.sorted(Map.Entry. <Character, Integer> comparingByValue().reversed())
.limit(map.size())
.forEach(entry -> System.out.printf("'%c' : %d%n", entry.getKey(), entry.getValue()));

并打印你想要的内容。 :)

关于java - Map.Entry 条目和 lambda 表达式无法解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55944568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com