我正在学习Java,但由于没有显示出现的次数,所以我没有弄清楚我在代码中犯了什么错误
package com.test.map;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class WordOcc {
public static void main(String[] args) {
Scanner sc1=new Scanner(System.in);
Scanner sc2=new Scanner(System.in);
System.out.println("Enter the sentence");
String sentence=sc1.nextLine();
System.out.println("Enter the word");
String word=sc2.nextLine();
Map<String,Integer> wordOccMap=new HashMap<String, Integer>();
String[] sa=sentence.split(" ");
for(String word1:sa)
{
if(!wordOccMap.containsKey(word1))
wordOccMap.put(word1, 1);
else
wordOccMap.put(word1, wordOccMap.get(word1)+1);
}
}
}
答案 0 :(得分:0)
这是一个简单的代码,我重新编写了您的代码,因此更容易发现错误。
问题是:此代码算什么字?请注意,word
从未使用过...
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc1=new Scanner(System.in);
Scanner sc2=new Scanner(System.in);
System.out.println("Enter the sentence");
String sentence=sc1.nextLine();
System.out.println("Enter the word");
String word=sc2.nextLine();
Map<String,Integer> wordOccMap=new HashMap<>();
String[] sa=sentence.split(" ");
for(String word1:sa)
{
if(!wordOccMap.containsKey(word1))
wordOccMap.put(word1, 1);
else
wordOccMap.put(word1, wordOccMap.get(word1) + 1);
}
}
}
第二个问题是您没有将结果打印回来:
这是您可以使用的一行示例:
System.out.println( wordOccMap.getOrDefault( word, 0 ) );
由于我不太确定您的目标是什么,因此我将在本示例中为您提供该示例,该示例已删除了单词变量(我不确定您要使用的变量是什么),并在另一个示例中使用了打印指令“ for”语法,因此您可以看到两种正弦。
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Test {
public static void main( String[] args ) {
Scanner sc1 = new Scanner( System.in );
System.out.println( "Enter the sentence" );
String sentence = sc1.nextLine( );
Map< String, Integer > wordOccMap = new HashMap<>( );
String[] sa = sentence.split( " " );
for ( String word1 : sa ) {
if ( !wordOccMap.containsKey( word1 ) ) wordOccMap.put( word1, 1 );
else wordOccMap.put( word1, wordOccMap.get( word1 ) + 1 );
}
wordOccMap.forEach( ( word, count ) -> System.out.println( word + " : " + count ));
}
}
或者向您展示静态导入:
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import static java.lang.System.out;
public class Test {
public static void main( String[] args ) {
Scanner sc1 = new Scanner( System.in );
out.println( "Enter the sentence" );
String sentence = sc1.nextLine( );
Map< String, Integer > wordOccMap = new HashMap<>( );
String[] sa = sentence.split( " " );
for ( String word1 : sa ) {
if ( !wordOccMap.containsKey( word1 ) ) wordOccMap.put( word1, 1 );
else wordOccMap.put( word1, wordOccMap.get( word1 ) + 1 );
}
wordOccMap.forEach( ( word, count ) -> out.println( word + " : " + count ));
}
}