如何获取 java 中 String java.util.Map.Entry.getKey() 的大小?

How to get the size of String java.util.Map.Entry.getKey() in java?

我尝试了一些选项,但无法获得所需的输出。

问题是如何得到m.getKey()

的大小

我试过 m.getKey().length ,m.getKey().size 但找不到。

System.out.print("\n duplicate words: ");
for(Map.Entry<String, Integer> m:  map.entrySet()){
if(m.getValue()>toStringArray.length-1)
);
System.out.print(m.getKey() + " ");
}

输出为

( HI THIS IS MY OUTPUT)

我需要的输出是

(5) //HI THIS IS MY OUTPUT total count is 5

欢迎提出建议。

我是 java

的初学者

这是我的完整代码

import java.io.File;
import java.io.FileInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import org.apache.commons.io.IOUtils;


public class testduplicatewordnew {
public static void main(String[] args) throws Exception {

/* Reading text content from file    */
 FileInputStream fisTargetFile = new FileInputStream(new File("E:\testfolder\மிரளச் செய்யும் மிலரபாவின் கதை!  Isha Tamil Blog 15.txt"));

    String targetFileStr = IOUtils.toString(fisTargetFile, "UTF-8");

 String []toStringArray = targetFileStr.split(" ");


 HashMap<String , Integer> map = analyzeWords("Analyzing contents ", toStringArray);



 System.out.print("\nduplicate words: ");
 for(Map.Entry<String, Integer> m:  map.entrySet()){
 if(m.getValue()>toStringArray.length-1)
// System.out.print(m.getKey() + "-" + m.getValue()/(toStringArray.length-1) + " ");
  System.out.print(m.getKey()+ " ");
 // System.out.println(map.keySet().size());
// System.out.println(m.getValue());


}
 System.out.println("\n");
 }

 private static HashMap<String, Integer> analyzeWords(String command, String []toStringArray ){
System.out.println(command);  

HashMap<String, Integer> unik = new HashMap<String, Integer>();  

int i =0;
while(i<toStringArray.length){ unik.put(toStringArray[i++], 0);}

 for(i = 0; i< toStringArray.length; i++){   
 for(int j = 0; j< toStringArray.length; j++ ){
 if( (toStringArray[i] != toStringArray[j]) && (i != j))
  unik.put(toStringArray[i],(int)unik.get(toStringArray[i]) +1);
 }
 }// oef outter for loop


 return unik;
 }// eof analyzeWords method

 /* method to read file content.
  * returns the contents of text file as a string */
 private static String fileNameReader(String fileName) throws FileNotFoundException{
System.out.println("\nReading " +fileName+ " file");
String generateString = "";
try{   
 File file = new File(fileName);
 Scanner scanner = new Scanner(file);

 generateString = scanner.nextLine();
 while (scanner.hasNextLine()) {
      generateString = generateString + "\n" + scanner.nextLine();
 }scanner.close();
 System.out.println("\nInitial content");
 System.out.println(generateString);
}catch(IOException e){
 System.out.println("\nError occured while reading file...");
 }
return generateString;
 }// eof fileNameReader method
}

由于m.getKey()方法returns是class对象的一个​​对象如果在println方法内部没有使用该方法,则必须是type-casted 到 String 访问 length() 方法如下:

((String)e.getKey()).length();

你应该直接使用 m.getValue() 并且 m.getKey() returns 类型是没有大小的整数。

map.keySet().size()

假设HashMap<String, Integer> map = new HashMap();

要获取键的数量,请使用((String[]) map.keySet()).size()

您可以使用以下方法获取尺寸:

map.keySet().size()

您可以尝试像下面这样的方法来计算关键字中的单词数:

String keys = "";
for(Map.Entry<String, Integer> m:  map.entrySet()){
 if(m.getValue()>toStringArray.length-1)
    keys = keys + " " + m.getKey();
}
System.out.print(keys.trim().split("\s+").length);

如果您要查找映射键中的单词数量,您可以通过 map.size() 获得输出 映射键必须是唯一的,如果您要查找键集中的重复项,则不应获取它们,因为它们不存在。