update
All checks were successful
Markup Tests / test (push) Successful in 8s
Markdown to Html Tests / test (push) Successful in 17s

This commit is contained in:
2026-02-17 09:32:08 +03:00
commit 2f05f238e9
109 changed files with 9369 additions and 0 deletions

View File

@@ -0,0 +1,93 @@
import java.io.*;
import java.util.*;
/**
* @author Nikita Doschennikov (me@fymio.us)
*/
public class WordStatLengthMiddle {
public static void main(String[] args) {
if (args.length != 2) {
System.err.println("incorrect input!");
System.err.println(
"usage: java WordStatLengthMiddle <inputFile> <outputFile>"
);
}
String inputFileName = args[0];
String outputFileName = args[1];
try {
BufferedReader r = new BufferedReader(
new FileReader(inputFileName)
);
Map<String, WordInfo> wordMap = new HashMap<>();
StringBuilder sb = new StringBuilder();
int wordIndex = 0;
int data = r.read();
while (data != -1) {
char c = (char) data;
if (
Character.getType(c) == Character.DASH_PUNCTUATION ||
Character.isLetter(c) ||
c == '\''
) {
sb.append(c);
} else {
if (sb.length() > 0) {
String word = sb.toString().toLowerCase();
if (word.length() >= 7) {
word = word.substring(3, word.length() - 3);
if (wordMap.containsKey(word)) {
wordMap.get(word).count++;
} else {
wordMap.put(
word,
new WordInfo(word, 1, wordIndex)
);
wordIndex++;
}
}
sb.setLength(0);
}
}
data = r.read();
}
if (sb.length() > 0) {
String word = sb.toString().toLowerCase();
if (word.length() >= 7) {
word = word.substring(3, word.length() - 3);
if (wordMap.containsKey(word)) {
wordMap.get(word).count++;
} else {
wordMap.put(word, new WordInfo(word, 1, wordIndex));
wordIndex++;
}
}
}
r.close();
List<WordInfo> sortedWords = new ArrayList<>(wordMap.values());
sortedWords.sort(
Comparator.comparingInt((WordInfo w) ->
w.word.length()
).thenComparingInt(w -> w.firstIndex)
);
PrintWriter writer = new PrintWriter(outputFileName, "UTF-8");
for (WordInfo info : sortedWords) {
writer.println(info.word + " " + info.count);
}
writer.close();
} catch (Exception ex) {
System.err.println("An error occured: " + ex.getMessage());
}
}
}