我尝试了一些选项,但无法获得所需的输出。
问题是如何获取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
}
最佳答案
您可以尝试像下面这样的方法来计算关键字中的单词数:
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);
关于java - 如何在 java 中获取 String java.util.Map.Entry.getKey() 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34916158/