如何获取 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()
获得输出 映射键必须是唯一的,如果您要查找键集中的重复项,则不应获取它们,因为它们不存在。
我尝试了一些选项,但无法获得所需的输出。
问题是如何得到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()
获得输出 映射键必须是唯一的,如果您要查找键集中的重复项,则不应获取它们,因为它们不存在。