, entity () , ? :-)
私はすぐに興味を持ちましたが、英語とロシア語のレイアウトで押されたときに既存の単語を与えるキーのシーケンスはいくつありますか?
もちろん、プログラマとして、私はそのようなすべての単語を見つけるようなプログラムを書く喜びを否定できませんでした。 まず、すべての単語形式の辞書が必要でした。 あなたの心が望むものはすべてhttp://wiki.services.openoffice.org/wiki/Dictionariesにあります
さらにコード:
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.TreeSet;
public class EqualTypedWords {
final static String RU = "";
final static String EN = "f,dult;pbqrkvyjghcnea[wxio]sm'.z";
private static final int WORD_SIZE = 3;
static TreeSet readFile(String fname) throws IOException {
TreeSet result = new TreeSet();
List lines = FileUtils.readLines(new File(fname), "KOI8-R");
for (String s : lines) {
result.add(s.split("/")[0].toLowerCase());
}
return result;
}
public static void main(String[] args) throws IOException {
TreeSet ruset = readFile("data/ru_RU_ie.dic");
TreeSet enset = readFile("data/en_GB.dic");
for (String en : enset) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < en.length(); i++) {
int ind = EN.indexOf(en.charAt(i));
if (ind != -1) {
sb.append(RU.charAt(ind));
}
}
String newWord = sb.toString();
String c = ruset.ceiling(newWord);
String f = ruset.floor(newWord);
if (ruset.contains(newWord) && fit(newWord)) {
System.out.println("en: " + en + "; ru: " + newWord);
continue;
}
if (!fit(c) || !fit(f) || !fit(newWord)) continue;
if (newWord.startsWith(f)) {
System.out.println("en: " + en + "; ru: " + f + "; retyped: " + newWord);
}
if (c.startsWith(newWord)) {
System.out.println("en: " + en + "; ru: " + c + "; retyped: " + newWord);
}
}
}
private static boolean fit(String c) {
return (c != null && c.length() > WORD_SIZE);
}
}
, en ru openoffice , .
:
en: ababa; ru: ; retyped:
en: belt; ru: ; retyped:
en: blench; ru: ; retyped:
en: blend; ru: ; retyped:
en: celsius; ru: ; retyped:
en: derby; ru: ; retyped:
en: eire; ru: ; retyped:
en: entity; ru:
en: entrench; ru: ; retyped:
en: exec; ru: ; retyped:
en: hdtv; ru:
en: herb; ru:
en: herbage; ru: ; retyped:
en: herbal; ru: ; retyped:
en: herbert; ru: ; retyped:
en: inert; ru:
en: kbps; ru:
en: kerb; ru:
en: lens; ru: ; retyped:
en: next; ru: ; retyped:
en: verb; ru: