code: public static String wrap(final String str, final int wrapLength) {
          return wrap(str, wrapLength, null, false);
      }
docs: <p>Wraps a single line of text, identifying words by <code>' '</code>.</p>
  
  <p>New lines will be separated by the system property line separator.
  Very long words, such as URLs will <i>not</i> be wrapped.</p>
  
  <p>Leading spaces on a new line are stripped.
  Trailing spaces are not stripped.</p>
  
  <table border="1" summary="Wrap Results">
  <tr>
  <th>input</th>
  <th>wrapLength</th>
  <th>result</th>
  </tr>
  <tr>
  <td>null</td>
  <td>*</td>
  <td>null</td>
  </tr>
  <tr>
  <td>""</td>
  <td>*</td>
  <td>""</td>
  </tr>
  <tr>
  <td>"Here is one line of text that is going to be wrapped after 20 columns."</td>
  <td>20</td>
  <td>"Here is one line of\ntext that is going\nto be wrapped after\n20 columns."</td>
  </tr>
  <tr>
  <td>"Click here to jump to the commons website - http://commons.apache.org"</td>
  <td>20</td>
  <td>"Click here to jump\nto the commons\nwebsite -\nhttp://commons.apache.org"</td>
  </tr>
  <tr>
  <td>"Click here, http://commons.apache.org, to jump to the commons website"</td>
  <td>20</td>
  <td>"Click here,\nhttp://commons.apache.org,\nto jump to the\ncommons website"</td>
  </tr>
  </table>
  
  (assuming that '\n' is the systems line separator)
  
  @param str  the String to be word wrapped, may be null
  @param wrapLength  the column to wrap the words at, less than 1 is treated as 1
  @return a line with newlines inserted, <code>null</code> if null input