An AttributedCharacterIterator allows iteration through both text and
related attribute information.
An attribute is a key/value pair, identified by the key. No two
attributes on a given character can have the same key.
The values for an attribute are immutable, or must not be mutated
by clients or storage. They are always passed by reference, and not
cloned.
A run with respect to an attribute is a maximum text range for
which:
- the attribute is undefined or null for the entire range, or
- the attribute value is defined and has the same non-null value for the
entire range.
A run with respect to a set of attributes is a maximum text range for
which this condition is met for each member attribute.
The returned indexes are limited to the range of the iterator.
The returned attribute information is limited to runs that contain
the current character.
Attribute keys are instances of AttributedCharacterIterator.Attribute and its
subclasses, such as java.awt.font.TextAttribute.