Top Description Fields Constructors Methods
com.google.common.base

public final Class Ascii

extends Object
Class Inheritance
Annotations
@GwtCompatible
@ElementTypesAreNonnullByDefault
Static Imports
com.google.common.base.Preconditions.checkArgument, .Preconditions.checkNotNull

Static methods pertaining to ASCII characters (those in the range of values 0x00 through 0x7F), and to strings containing such characters.

ASCII utilities also exist in other classes of this package:

Authors
Catherine Berry, Gregory Kick
Since
7.0

Field Summary

Modifier and TypeField and Description
public static final byte
ACK

Acknowledge: A communication control character transmitted by a receiver as an affirmative response to a sender.

public static final byte
BEL

Bell ('\a'): A character for use when there is a need to call for human attention.

public static final byte
BS

Backspace ('\b'): A format effector which controls the movement of the printing position one printing space backward on the same printing line.

public static final byte
CAN

Cancel: A control character used to indicate that the data with which it is sent is in error or is to be disregarded.

private static final char
CASE_MASK

A bit mask which selects the bit encoding ASCII character case.

public static final byte
CR

Carriage Return ('\r'): A format effector which controls the movement of the printing position to the first printing position on the same printing line.

public static final byte
DC1

Device Control 1.

public static final byte
DC2

Device Control 2.

public static final byte
DC3

Device Control 3.

public static final byte
DC4

Device Control 4.

public static final byte
DEL

Delete: This character is used primarily to "erase" or "obliterate" erroneous or unwanted characters in perforated tape.

public static final byte
DLE

Data Link Escape: A communication control character which will change the meaning of a limited number of contiguously following characters.

public static final byte
EM

End of Medium: A control character associated with the sent data which may be used to identify the physical end of the medium, or the end of the used, or wanted, portion of information recorded on a medium.

public static final byte
ENQ

Enquiry: A communication control character used in data communication systems as a request for a response from a remote station.

public static final byte
EOT

End of Transmission: A communication control character used to indicate the conclusion of a transmission, which may have contained one or more texts and any associated headings.

public static final byte
ESC

Escape: A control character intended to provide code extension (supplementary characters) in general information interchange.

public static final byte
ETB

End of Transmission Block: A communication control character used to indicate the end of a block of data for communication purposes.

public static final byte
ETX

End of Text: A communication control character used to terminate a sequence of characters started with STX and transmitted as an entity.

public static final byte
FF

Form Feed ('\f'): A format effector which controls the movement of the printing position to the first pre-determined printing line on the next form or page.

public static final byte
FS

File Separator: These four information separators may be used within data in optional fashion, except that their hierarchical relationship shall be: FS is the most inclusive, then GS, then RS, and US is least inclusive.

public static final byte
GS

Group Separator: These four information separators may be used within data in optional fashion, except that their hierarchical relationship shall be: FS is the most inclusive, then GS, then RS, and US is least inclusive.

public static final byte
HT

Horizontal Tabulation ('\t'): A format effector which controls the movement of the printing position to the next in a series of predetermined positions along the printing line.

public static final byte
LF

Line Feed ('\n'): A format effector which controls the movement of the printing position to the next printing line.

public static final char
MAX

The maximum value of an ASCII character.

public static final char
MIN

The minimum value of an ASCII character.

public static final byte
NAK

Negative Acknowledge: A communication control character transmitted by a receiver as a negative response to the sender.

public static final byte
NL

Alternate name for LF.

public static final byte
NUL

Null ('\0'): The all-zeros character which may serve to accomplish time fill and media fill.

public static final byte
RS

Record Separator: These four information separators may be used within data in optional fashion, except that their hierarchical relationship shall be: FS is the most inclusive, then GS, then RS, and US is least inclusive.

public static final byte
SI

Shift In: A control character indicating that the code combinations which follow shall be interpreted according to the standard code table.

public static final byte
SO

Shift Out: A control character indicating that the code combinations which follow shall be interpreted as outside of the character set of the standard code table until a Shift In character is reached.

public static final byte
SOH

Start of Heading: A communication control character used at the beginning of a sequence of characters which constitute a machine-sensible address or routing information.

public static final byte
SP

Space: A normally non-printing graphic character used to separate words.

public static final byte
SPACE

Alternate name for SP.

public static final byte
STX

Start of Text: A communication control character which precedes a sequence of characters that is to be treated as an entity and entirely transmitted through to the ultimate destination.

public static final byte
SUB

Substitute: A character that may be substituted for a character which is determined to be invalid or in error.

public static final byte
SYN

Synchronous Idle: A communication control character used by a synchronous transmission system in the absence of any other character to provide a signal from which synchronism may be achieved or retained.

public static final byte
US

Unit Separator: These four information separators may be used within data in optional fashion, except that their hierarchical relationship shall be: FS is the most inclusive, then GS, then RS, and US is least inclusive.

public static final byte
VT

Vertical Tabulation ('\v'): A format effector which controls the movement of the printing position to the next in a series of predetermined printing lines.

public static final byte
XOFF

Transmission off.

public static final byte
XON

Transmission On: Although originally defined as DC1, this ASCII control character is now better known as the XON code used for software flow control in serial communications.

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static boolean
equalsIgnoreCase(CharSequence s1, CharSequence s2)

Indicates whether the contents of the given character sequences s1 and s2 are equal, ignoring the case of any ASCII alphabetic characters between 'a' and 'z' or 'A' and 'Z' inclusive.

private static int
getAlphaIndex(char c)

Returns the non-negative index value of the alpha character c, regardless of case.

public static boolean
isLowerCase(char c)

Indicates whether c is one of the twenty-six lowercase ASCII alphabetic characters between 'a' and 'z' inclusive.

public static boolean
isUpperCase(char c)

Indicates whether c is one of the twenty-six uppercase ASCII alphabetic characters between 'A' and 'Z' inclusive.

public static String
toLowerCase(String string)

Returns a copy of the input string in which all uppercase ASCII characters have been converted to lowercase.

public static String
toLowerCase(CharSequence chars)

Returns a copy of the input character sequence in which all uppercase ASCII characters have been converted to lowercase.

public static char
toLowerCase(char c)

If the argument is an uppercase ASCII character, returns the lowercase equivalent.

public static String
toUpperCase(String string)

Returns a copy of the input string in which all lowercase ASCII characters have been converted to uppercase.

public static String
toUpperCase(CharSequence chars)

Returns a copy of the input character sequence in which all lowercase ASCII characters have been converted to uppercase.

public static char
toUpperCase(char c)

If the argument is a lowercase ASCII character, returns the uppercase equivalent.

public static String
truncate(CharSequence seq, int maxLength, String truncationIndicator)

Truncates the given character sequence to the given maximum length.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

ACKback to summary
public static final byte ACK

Acknowledge: A communication control character transmitted by a receiver as an affirmative response to a sender.

Since
8.0
BELback to summary
public static final byte BEL

Bell ('\a'): A character for use when there is a need to call for human attention. It may control alarm or attention devices.

Since
8.0
BSback to summary
public static final byte BS

Backspace ('\b'): A format effector which controls the movement of the printing position one printing space backward on the same printing line. (Applicable also to display devices.)

Since
8.0
CANback to summary
public static final byte CAN

Cancel: A control character used to indicate that the data with which it is sent is in error or is to be disregarded.

Since
8.0
CASE_MASKback to summary
private static final char CASE_MASK

A bit mask which selects the bit encoding ASCII character case.

CRback to summary
public static final byte CR

Carriage Return ('\r'): A format effector which controls the movement of the printing position to the first printing position on the same printing line. (Applicable also to display devices.)

Since
8.0
DC1back to summary
public static final byte DC1

Device Control 1. Characters for the control of ancillary devices associated with data processing or telecommunication systems, more especially switching devices "on" or "off." (If a single "stop" control is required to interrupt or turn off ancillary devices, DC4 is the preferred assignment.)

Since
8.0
DC2back to summary
public static final byte DC2

Device Control 2. Characters for the control of ancillary devices associated with data processing or telecommunication systems, more especially switching devices "on" or "off." (If a single "stop" control is required to interrupt or turn off ancillary devices, DC4 is the preferred assignment.)

Since
8.0
DC3back to summary
public static final byte DC3

Device Control 3. Characters for the control of ancillary devices associated with data processing or telecommunication systems, more especially switching devices "on" or "off." (If a single "stop" control is required to interrupt or turn off ancillary devices, DC4 is the preferred assignment.)

Since
8.0
DC4back to summary
public static final byte DC4

Device Control 4. Characters for the control of ancillary devices associated with data processing or telecommunication systems, more especially switching devices "on" or "off." (If a single "stop" control is required to interrupt or turn off ancillary devices, DC4 is the preferred assignment.)

Since
8.0
DELback to summary
public static final byte DEL

Delete: This character is used primarily to "erase" or "obliterate" erroneous or unwanted characters in perforated tape.

Since
8.0
DLEback to summary
public static final byte DLE

Data Link Escape: A communication control character which will change the meaning of a limited number of contiguously following characters. It is used exclusively to provide supplementary controls in data communication networks.

Since
8.0
EMback to summary
public static final byte EM

End of Medium: A control character associated with the sent data which may be used to identify the physical end of the medium, or the end of the used, or wanted, portion of information recorded on a medium. (The position of this character does not necessarily correspond to the physical end of the medium.)

Since
8.0
ENQback to summary
public static final byte ENQ

Enquiry: A communication control character used in data communication systems as a request for a response from a remote station. It may be used as a "Who Are You" (WRU) to obtain identification, or may be used to obtain station status, or both.

Since
8.0
EOTback to summary
public static final byte EOT

End of Transmission: A communication control character used to indicate the conclusion of a transmission, which may have contained one or more texts and any associated headings.

Since
8.0
ESCback to summary
public static final byte ESC

Escape: A control character intended to provide code extension (supplementary characters) in general information interchange. The Escape character itself is a prefix affecting the interpretation of a limited number of contiguously following characters.

Since
8.0
ETBback to summary
public static final byte ETB

End of Transmission Block: A communication control character used to indicate the end of a block of data for communication purposes. ETB is used for blocking data where the block structure is not necessarily related to the processing format.

Since
8.0
ETXback to summary
public static final byte ETX

End of Text: A communication control character used to terminate a sequence of characters started with STX and transmitted as an entity.

Since
8.0
FFback to summary
public static final byte FF

Form Feed ('\f'): A format effector which controls the movement of the printing position to the first pre-determined printing line on the next form or page. (Applicable also to display devices.)

Since
8.0
FSback to summary
public static final byte FS

File Separator: These four information separators may be used within data in optional fashion, except that their hierarchical relationship shall be: FS is the most inclusive, then GS, then RS, and US is least inclusive. (The content and length of a File, Group, Record, or Unit are not specified.)

Since
8.0
GSback to summary
public static final byte GS

Group Separator: These four information separators may be used within data in optional fashion, except that their hierarchical relationship shall be: FS is the most inclusive, then GS, then RS, and US is least inclusive. (The content and length of a File, Group, Record, or Unit are not specified.)

Since
8.0
HTback to summary
public static final byte HT

Horizontal Tabulation ('\t'): A format effector which controls the movement of the printing position to the next in a series of predetermined positions along the printing line. (Applicable also to display devices and the skip function on punched cards.)

Since
8.0
LFback to summary
public static final byte LF

Line Feed ('\n'): A format effector which controls the movement of the printing position to the next printing line. (Applicable also to display devices.) Where appropriate, this character may have the meaning "New Line" (NL), a format effector which controls the movement of the printing point to the first printing position on the next printing line. Use of this convention requires agreement between sender and recipient of data.

Since
8.0
MAXback to summary
public static final char MAX

The maximum value of an ASCII character.

Since
9.0 (was type int before 12.0)
MINback to summary
public static final char MIN

The minimum value of an ASCII character.

Since
9.0 (was type int before 12.0)
NAKback to summary
public static final byte NAK

Negative Acknowledge: A communication control character transmitted by a receiver as a negative response to the sender.

Since
8.0
NLback to summary
public static final byte NL

Alternate name for LF. (LF is preferred.)

Since
8.0
NULback to summary
public static final byte NUL

Null ('\0'): The all-zeros character which may serve to accomplish time fill and media fill. Normally used as a C string terminator.

Although RFC 20 names this as "Null", note that it is distinct from the C/C++ "NULL" pointer.

Since
8.0
RSback to summary
public static final byte RS

Record Separator: These four information separators may be used within data in optional fashion, except that their hierarchical relationship shall be: FS is the most inclusive, then GS, then RS, and US is least inclusive. (The content and length of a File, Group, Record, or Unit are not specified.)

Since
8.0
SIback to summary
public static final byte SI

Shift In: A control character indicating that the code combinations which follow shall be interpreted according to the standard code table.

Since
8.0
SOback to summary
public static final byte SO

Shift Out: A control character indicating that the code combinations which follow shall be interpreted as outside of the character set of the standard code table until a Shift In character is reached.

Since
8.0
SOHback to summary
public static final byte SOH

Start of Heading: A communication control character used at the beginning of a sequence of characters which constitute a machine-sensible address or routing information. Such a sequence is referred to as the "heading." An STX character has the effect of terminating a heading.

Since
8.0
SPback to summary
public static final byte SP

Space: A normally non-printing graphic character used to separate words. It is also a format effector which controls the movement of the printing position, one printing position forward. (Applicable also to display devices.)

Since
8.0
SPACEback to summary
public static final byte SPACE

Alternate name for SP.

Since
8.0
STXback to summary
public static final byte STX

Start of Text: A communication control character which precedes a sequence of characters that is to be treated as an entity and entirely transmitted through to the ultimate destination. Such a sequence is referred to as "text." STX may be used to terminate a sequence of characters started by SOH.

Since
8.0
SUBback to summary
public static final byte SUB

Substitute: A character that may be substituted for a character which is determined to be invalid or in error.

Since
8.0
SYNback to summary
public static final byte SYN

Synchronous Idle: A communication control character used by a synchronous transmission system in the absence of any other character to provide a signal from which synchronism may be achieved or retained.

Since
8.0
USback to summary
public static final byte US

Unit Separator: These four information separators may be used within data in optional fashion, except that their hierarchical relationship shall be: FS is the most inclusive, then GS, then RS, and US is least inclusive. (The content and length of a File, Group, Record, or Unit are not specified.)

Since
8.0
VTback to summary
public static final byte VT

Vertical Tabulation ('\v'): A format effector which controls the movement of the printing position to the next in a series of predetermined printing lines. (Applicable also to display devices.)

Since
8.0
XOFFback to summary
public static final byte XOFF

Transmission off. See XON for explanation.

Since
8.0
XONback to summary
public static final byte XON

Transmission On: Although originally defined as DC1, this ASCII control character is now better known as the XON code used for software flow control in serial communications. The main use is restarting the transmission after the communication has been stopped by the XOFF control code.

Since
8.0

Constructor Detail

Asciiback to summary
private Ascii()

Method Detail

equalsIgnoreCaseback to summary
public static boolean equalsIgnoreCase(CharSequence s1, CharSequence s2)

Indicates whether the contents of the given character sequences s1 and s2 are equal, ignoring the case of any ASCII alphabetic characters between 'a' and 'z' or 'A' and 'Z' inclusive.

This method is significantly faster than String#equalsIgnoreCase and should be used in preference if at least one of the parameters is known to contain only ASCII characters.

Note however that this method does not always behave identically to expressions such as:

  • string.toUpperCase().equals("UPPER CASE ASCII")
  • string.toLowerCase().equals("lower case ascii")

due to case-folding of some non-ASCII characters (which does not occur in String#equalsIgnoreCase). However in almost all cases that ASCII strings are used, the author probably wanted the behavior provided by this method rather than the subtle and sometimes surprising behavior of toUpperCase() and toLowerCase().

Since
16.0
getAlphaIndexback to summary
private static int getAlphaIndex(char c)

Returns the non-negative index value of the alpha character c, regardless of case. Ie, 'a'/'A' returns 0 and 'z'/'Z' returns 25. Non-alpha characters return a value of 26 or greater.

isLowerCaseback to summary
public static boolean isLowerCase(char c)

Indicates whether c is one of the twenty-six lowercase ASCII alphabetic characters between 'a' and 'z' inclusive. All others (including non-ASCII characters) return false.

isUpperCaseback to summary
public static boolean isUpperCase(char c)

Indicates whether c is one of the twenty-six uppercase ASCII alphabetic characters between 'A' and 'Z' inclusive. All others (including non-ASCII characters) return false.

toLowerCaseback to summary
public static String toLowerCase(String string)

Returns a copy of the input string in which all uppercase ASCII characters have been converted to lowercase. All other characters are copied without modification.

toLowerCaseback to summary
public static String toLowerCase(CharSequence chars)

Returns a copy of the input character sequence in which all uppercase ASCII characters have been converted to lowercase. All other characters are copied without modification.

Since
14.0
toLowerCaseback to summary
public static char toLowerCase(char c)

If the argument is an uppercase ASCII character, returns the lowercase equivalent. Otherwise returns the argument.

toUpperCaseback to summary
public static String toUpperCase(String string)

Returns a copy of the input string in which all lowercase ASCII characters have been converted to uppercase. All other characters are copied without modification.

toUpperCaseback to summary
public static String toUpperCase(CharSequence chars)

Returns a copy of the input character sequence in which all lowercase ASCII characters have been converted to uppercase. All other characters are copied without modification.

Since
14.0
toUpperCaseback to summary
public static char toUpperCase(char c)

If the argument is a lowercase ASCII character, returns the uppercase equivalent. Otherwise returns the argument.

truncateback to summary
public static String truncate(CharSequence seq, int maxLength, String truncationIndicator)

Truncates the given character sequence to the given maximum length. If the length of the sequence is greater than maxLength, the returned string will be exactly maxLength chars in length and will end with the given truncationIndicator. Otherwise, the sequence will be returned as a string with no changes to the content.

Examples:

Ascii.truncate("foobar", 7, "..."); // returns "foobar"
Ascii.truncate("foobar", 5, "..."); // returns "fo..."

Note: This method may work with certain non-ASCII text but is not safe for use with arbitrary Unicode text. It is mostly intended for use with text that is known to be safe for use with it (such as all-ASCII text) and for simple debugging text. When using this method, consider the following:

  • it may split surrogate pairs
  • it may split characters and combining characters
  • it does not consider word boundaries
  • if truncating for display to users, there are other considerations that must be taken into account
  • the appropriate truncation indicator may be locale-dependent
  • it is safe to use non-ASCII characters in the truncation indicator
Exceptions
IllegalArgumentException:
if maxLength is less than the length of truncationIndicator
Since
16.0