private int findWordIndex(final CharSequence buffer) throws WordNotFoundException { final WordAndIndex key = new WordAndIndex(-1, buffer); final int index = Arrays.binarySearch(words, key, wordListSortOrder); if (index < 0) { final int insertionPoint = -index - 1; int suggestion = insertionPoint == 0 ? insertionPoint : insertionPoint - 1; if (suggestion + 1 == words.length) suggestion--; throw new WordNotFoundException(buffer, words[suggestion].word, words[suggestion + 1].word); } return words[index].index; }
private MnemonicValidator(final WordList wordList) { normalizer = new WordListMapNormalization(wordList); words = new WordAndIndex[1 << 11]; for (int i = 0; i < 1 << 11; i++) { words[i] = new WordAndIndex(i, wordList.getWord(i)); } charSequenceSplitter = new CharSequenceSplitter(wordList.getSpace(), normalizeNFKD(wordList.getSpace())); Arrays.sort(words, wordListSortOrder); }
private int findWordIndex(final CharSequence buffer) throws WordNotFoundException { final WordAndIndex key = new WordAndIndex(-1, buffer); final int index = Arrays.binarySearch(words, key, wordListSortOrder); if (index < 0) { final int insertionPoint = -index - 1; int suggestion = insertionPoint == 0 ? insertionPoint : insertionPoint - 1; if (suggestion + 1 == words.length) suggestion--; throw new WordNotFoundException(buffer, words[suggestion].word, words[suggestion + 1].word); } return words[index].index; }
private MnemonicValidator(final WordList wordList) { normalizer = new WordListMapNormalization(wordList); words = new WordAndIndex[1 << 11]; for (int i = 0; i < 1 << 11; i++) { words[i] = new WordAndIndex(i, wordList.getWord(i)); } charSequenceSplitter = new CharSequenceSplitter(wordList.getSpace(), normalizeNFKD(wordList.getSpace())); Arrays.sort(words, wordListSortOrder); }