假設一個目錄是由用戶輸入的。
如何根據名字的第一個字母對所有文件進行排序和計數?我認爲必須有一個用於排序的比較器,但我不知道如何進行計數。根據文件名的首字母對文件進行排序和計數
-3
A
回答
1
經典的方式做到這一點是讓每個字母鍵和計數的信,一個地圖的價值
List<String> names = new ArrayList<>();
Map<Character,Integer> map = new HashMap<>();
for (String name : names)
{
char firstLetter = name.charAt(0);
if(map.containsKey(firstLetter))
map.put(firstLetter, map.get(firstLetter)+1);
else
map.put(firstLetter, 1);
}
0
看看this後,他們使用的是listFiles函數。然後你就可以通過文件名來計算和做任何你想做的事情。我不認爲有整整獲取你所需要的現有功能...
0
使用谷歌番石榴TreeMultiset很容易:
public static void main(String[] args) throws Exception {
File dir = new File(*<directory>*);
Multiset<Character> counts = TreeMultiset.create();
for(File file: dir.listFiles()) {
counts.add(file.getName().charAt(0));
}
System.out.println(counts);
}
0
試着這麼做:
File mydirectory = new File("c:\\users");
Map<Character, Integer> alpaCount = new HashMap<Character, Integer>();
Character firstChar;
Integer count;
for (File file : mydirectory.listFiles()) {
firstChar = file.getName().charAt(0);
count = alpaCount.get(firstChar);
if (count == null) {
alpaCount.put(firstChar, 1);
} else {
alpaCount.put(firstChar, count + 1);
}
}
1
如果您正在使用java-8有一種優雅的方式來做到這一點:
import static java.util.stream.Collectors.counting;
import static java.util.stream.Collectors.groupingBy;
...
Map<Character, Long> countMap = Files.list(Paths.get("some/directory"))
.filter(p -> !Files.isDirectory(p))
.collect(groupingBy(p -> p.getFileName().toString().charAt(0), counting()));
它所做的是:
- 通過應用濾波得到給出
- 只得到文件的目錄
Stream<Path>
- 收集每個文件在一個
Map<Character, List<Path>>
,按它們的第一個字母分組 - 計算每個文件中的元素數
List<Path>
相關問題
- 1. 如何根據grep計數對文件進行排序?
- 2. 如何按升序對字母數字文件名稱數組進行排序?
- 3. Java根據文件名進行重命名和排序
- 4. 根據條件對ArrayList數據進行排序和排序
- 5. 如何根據另一個文件對文件進行排序?
- 6. 對文本文件中的字符進行計數/排序
- 7. 對文本文件中的單詞進行排序和計數
- 8. 根據文件名中間的版本號對文件進行排序
- 9. 根據file.lastModified對文件[]的數組進行排序
- 10. 如何根據字符串和搜索對文本文件進行排序
- 11. 使用Python按字母順序對CSV文件進行排序
- 12. 根據字段按字母順序對散列進行排序
- 13. 根據數字對字母排序
- 14. 使用命令行根據內容對文件進行排序
- 15. 在Java中使用數字名稱對文件進行排序
- 16. 按文件名的內容對文件進行排序
- 17. 在Python中按字母順序對文本文件的內容進行排序
- 18. 根據來自不同文件的信息對文件進行排序
- 19. 根據一個值進行條件排序,然後按字母順序排序
- 20. Unix shell腳本根據其文件名中存在的'日期字符串'對文件進行排序
- 21. 根據第一列/行中字符的長度對文件進行排序
- 22. 根據內容對文件內容進行排序
- 23. java:根據創建日期對文件進行排序
- 24. 使用Java根據日期對文件進行排序
- 25. 根據其內容對日誌文件進行排序
- 26. 如何根據創建日期對文件進行排序?
- 27. 需要根據創建日期對文件進行排序
- 28. 對文本文件中的數字進行排序
- 29. 如何根據PHP中文件名的兩部分對文件進行排序和發送?
- 30. 對文本文件中的數據進行排序
第一個字母?字母? – SMA
'HashMap'(字母作爲鍵,作爲值計數)可能會做這項工作 –