public final class AlphabetConverter extends Object
Convert from one alphabet to another, with the possibility of leaving certain characters unencoded.
The target and do not encode languages must be in the Unicode BMP, but the source language does not.
The encoding will all be of a fixed length, except for the 'do not encode' chars, which will be of length 1
Character[] originals; // a, b, c, d Character[] encoding; // 0, 1, d Character[] doNotEncode; // d AlphabetConverter ac = AlphabetConverter.createConverterFromChars(originals, encoding, doNotEncode); ac.encode("a"); // 00 ac.encode("b"); // 01 ac.encode("c"); // 0d ac.encode("d"); // d ac.encode("abcd"); // 00010dd
#ThreadSafe# AlphabetConverter class methods are thread-safe as they do not change internal state.
Modifier and Type | Method and Description |
---|---|
static AlphabetConverter |
createConverter(Integer[] original,
Integer[] encoding,
Integer[] doNotEncode)
Creates an alphabet converter, for converting from the original alphabet,
to the encoded alphabet, while leaving
the characters in doNotEncode as they are (if possible).
|
static AlphabetConverter |
createConverterFromChars(Character[] original,
Character[] encoding,
Character[] doNotEncode)
Creates an alphabet converter, for converting from the original alphabet,
to the encoded alphabet, while leaving the characters in
doNotEncode as they are (if possible).
|
static AlphabetConverter |
createConverterFromMap(Map<Integer,String> originalToEncoded)
Creates a new converter from a map.
|
String |
decode(String encoded)
Decodes a given string.
|
String |
encode(String original)
Encodes a given string.
|
boolean |
equals(Object obj) |
int |
getEncodedCharLength()
Gets the length of characters in the encoded alphabet that are necessary
for each character in the original
alphabet.
|
Map<Integer,String> |
getOriginalToEncoded()
Gets the mapping from integer code point of source language to encoded
string.
|
int |
hashCode() |
String |
toString() |
public static AlphabetConverter createConverter(Integer[] original, Integer[] encoding, Integer[] doNotEncode)
Duplicate letters in either original or encoding will be ignored.
original
- an array of ints representing the original alphabet in
code pointsencoding
- an array of ints representing the alphabet to be used for
encoding, in code pointsdoNotEncode
- an array of ints representing the chars to be encoded
using the original alphabet - every char
here must appear in both the previous paramsIllegalArgumentException
- if an AlphabetConverter cannot be
constructedpublic static AlphabetConverter createConverterFromChars(Character[] original, Character[] encoding, Character[] doNotEncode)
Duplicate letters in either original or encoding will be ignored.
original
- an array of chars representing the original alphabetencoding
- an array of chars representing the alphabet to be used
for encodingdoNotEncode
- an array of chars to be encoded using the original
alphabet - every char here must appear in
both the previous paramsIllegalArgumentException
- if an AlphabetConverter cannot be
constructedpublic static AlphabetConverter createConverterFromMap(Map<Integer,String> originalToEncoded)
originalToEncoded
- a map returned from getOriginalToEncoded()getOriginalToEncoded()
public String decode(String encoded) throws UnsupportedEncodingException
encoded
- a string that has been encoded using this
AlphabetConverternull
if the given string is nullUnsupportedEncodingException
- if unexpected characters that
cannot be handled are encounteredpublic String encode(String original) throws UnsupportedEncodingException
original
- the string to be encodednull
if the given string is nullUnsupportedEncodingException
- if chars that are not supported are
encounteredpublic int getEncodedCharLength()
public Map<Integer,String> getOriginalToEncoded()
Copyright © 2014–2022 The Apache Software Foundation. All rights reserved.