net.fortuna.ical4j.util

## Class Strings

- java.lang.Object
- - net.fortuna.ical4j.util.Strings

    public final class Strings
    extends Object

$Id$ [23-Apr-2004] Utility methods for working with parameters.

Author:
  Ben Fortuna

       4.3.11 Text

          Value Name: TEXT

          Purpose This value type is used to identify values that contain human
          readable text.

          Formal Definition: The character sets supported by this revision of
          iCalendar are UTF-8 and US ASCII thereof. The applicability to other
          character sets is for future work. The value type is defined by the
          following notation.

            text       = *(TSAFE-CHAR / ":" / DQUOTE / ESCAPED-CHAR)
            ; Folded according to description above

            ESCAPED-CHAR = "\\" / "\;" / "\," / "\N" / "\n")
               ; \\ encodes \, \N or \n encodes newline
               ; \; encodes ;, \, encodes ,

            TSAFE-CHAR = %x20-21 / %x23-2B / %x2D-39 / %x3C-5B
                         %x5D-7E / NON-US-ASCII
               ; Any character except CTLs not needed by the current
               ; character set, DQUOTE, ";", ":", "\", ","

            Note: Certain other character sets may require modification of the
            above definitions, but this is beyond the scope of this document.

          Description: If the property permits, multiple "text" values are
          specified by a COMMA character (US-ASCII decimal 44) separated list
          of values.

          The language in which the text is represented can be controlled by
          the "LANGUAGE" property parameter.

          An intentional formatted text line break MUST only be included in a
          "TEXT" property value by representing the line break with the
          character sequence of BACKSLASH (US-ASCII decimal 92), followed by a
          LATIN SMALL LETTER N (US-ASCII decimal 110) or a LATIN CAPITAL LETTER
          N (US-ASCII decimal 78), that is "\n" or "\N".

          The "TEXT" property values may also contain special characters that
          are used to signify delimiters, such as a COMMA character for lists
          of values or a SEMICOLON character for structured values. In order to
          support the inclusion of these special characters in "TEXT" property
          values, they MUST be escaped with a BACKSLASH character. A BACKSLASH
          character (US-ASCII decimal 92) in a "TEXT" property value MUST be
          escaped with another BACKSLASH character. A COMMA character in a
          "TEXT" property value MUST be escaped with a BACKSLASH character
          (US-ASCII decimal 92). A SEMICOLON character in a "TEXT" property
          value MUST be escaped with a BACKSLASH character (US-ASCII decimal
          92).  However, a COLON character in a "TEXT" property value SHALL NOT
          be escaped with a BACKSLASH character.Example: A multiple line value
          of:

            Project XYZ Final Review
            Conference Room - 3B
            Come Prepared.

          would be represented as:

            Project XYZ Final Review\nConference Room - 3B\nCome Prepared.

### Field Summary

Fields
`static String` `LINE_SEPARATOR` A string used to denote the start (and end) of iCalendar content lines.
`static Pattern` `PARAM_QUOTE_PATTERN` Defines a regular expression representing all parameter strings that should be quoted.

### Method Summary

Methods
`static String` `escape(String aValue)` Convenience method for escaping special characters.
`static String` `escapeNewline(String value)`
`static String` `quote(Object aValue)` Convenience method for adding quotes.
`static String` `unescape(String aValue)` Convenience method for replacing escaped special characters with their original form.
`static String` `unquote(String aValue)` Convenience method for removing surrounding quotes from a string value.
`static String` `valueOf(Object object)` Wraps `java.lang.String.valueOf()` to return an empty string where the specified object is null.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### PARAM_QUOTE_PATTERN

    public static final Pattern PARAM_QUOTE_PATTERN

Defines a regular expression representing all parameter strings that should be quoted.

#### LINE_SEPARATOR

    public static final String LINE_SEPARATOR

A string used to denote the start (and end) of iCalendar content lines.

See Also:
  Constant Field Values

### Method Detail

#### quote

    public static String quote(Object aValue)

Convenience method for adding quotes. The specified object is converted to a string representation by calling its `toString()` method.

Parameters:
  `aValue` - an object to quote
Returns:
  a quoted string

#### unquote

    public static String unquote(String aValue)

Convenience method for removing surrounding quotes from a string value.

Parameters:
  `aValue` - a string to remove quotes from
Returns:
  an un-quoted string

#### escape

    public static String escape(String aValue)

Convenience method for escaping special characters.

Parameters:
  `aValue` - a string value to escape
Returns:
  an escaped representation of the specified string

#### unescape

    public static String unescape(String aValue)

Convenience method for replacing escaped special characters with their original form.

Parameters:
  `aValue` - a string value to unescape
Returns:
  a string representation of the specified string with escaped characters replaced with their original form

#### escapeNewline

    public static String escapeNewline(String value)

#### valueOf

    public static String valueOf(Object object)

Wraps `java.lang.String.valueOf()` to return an empty string where the specified object is null.

Parameters:
  `object` - an object instance
Returns:
  a string representation of the object