code: public static String denormalize(final CharSequence self) {
          final String s = self.toString();
          // Don't do this in static initializer because we may never be needed.
          // TODO: Put this lineSeparator property somewhere everyone can use it.
          if (lineSeparator == null) {
              final StringWriter sw = new StringWriter(2);
              try {
                  // We use BufferedWriter rather than System.getProperty because
                  // it has the security manager rigamarole to deal with the possible exception.
                  final BufferedWriter bw = new BufferedWriter(sw);
                  bw.newLine();
                  bw.flush();
                  lineSeparator = sw.toString();
              } catch (IOException ioe) {
                  // This shouldn't happen, but this is the same default used by
                  // BufferedWriter on a security exception.
                  lineSeparator = "\n";
              }
          }
  
          final int len = s.length();
  
          if (len < 1) {
              return s;
          }
  
          final StringBuilder sb = new StringBuilder((110 * len) / 100);
  
          int i = 0;
  
          while (i < len) {
              final char ch = s.charAt(i++);
  
              switch (ch) {
                  case '\r':
                      sb.append(lineSeparator);
  
                      // Eat the following LF if any.
                      if ((i < len) && (s.charAt(i) == '\n')) {
                          ++i;
                      }
  
                      break;
  
                  case '\n':
                      sb.append(lineSeparator);
                      break;
  
                  default:
                      sb.append(ch);
                      break;
              }
           }
  
          return sb.toString();
      }
docs: Return a CharSequence with lines (separated by LF, CR/LF, or CR)
  terminated by the platform specific line separator.
  
  @param self a CharSequence object
  @return the denormalized toString() of this CharSequence
  @see #denormalize(String)
  @since 1.8.2