Modified: 
websites/production/commons/content/proper/commons-lang/xref/org/apache/commons/lang3/StringUtils.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-lang/xref/org/apache/commons/lang3/StringUtils.html
 (original)
+++ 
websites/production/commons/content/proper/commons-lang/xref/org/apache/commons/lang3/StringUtils.html
 Thu Aug 29 19:59:17 2024
@@ -9039,576 +9039,574 @@
 <a class="jxr_linenumber" name="L9031" href="#L9031">9031</a> <em 
class="jxr_javadoccomment">     * @param charsetName</em>
 <a class="jxr_linenumber" name="L9032" href="#L9032">9032</a> <em 
class="jxr_javadoccomment">     *            the encoding to use, if null then 
use the platform default</em>
 <a class="jxr_linenumber" name="L9033" href="#L9033">9033</a> <em 
class="jxr_javadoccomment">     * @return a new String</em>
-<a class="jxr_linenumber" name="L9034" href="#L9034">9034</a> <em 
class="jxr_javadoccomment">     * @throws UnsupportedEncodingException</em>
-<a class="jxr_linenumber" name="L9035" href="#L9035">9035</a> <em 
class="jxr_javadoccomment">     *             Never thrown</em>
-<a class="jxr_linenumber" name="L9036" href="#L9036">9036</a> <em 
class="jxr_javadoccomment">     * @throws NullPointerException</em>
-<a class="jxr_linenumber" name="L9037" href="#L9037">9037</a> <em 
class="jxr_javadoccomment">     *             if the input is null</em>
-<a class="jxr_linenumber" name="L9038" href="#L9038">9038</a> <em 
class="jxr_javadoccomment">     * @deprecated use {@link 
StringUtils#toEncodedString(byte[], Charset)} instead of String constants in 
your code</em>
-<a class="jxr_linenumber" name="L9039" href="#L9039">9039</a> <em 
class="jxr_javadoccomment">     * @since 3.1</em>
-<a class="jxr_linenumber" name="L9040" href="#L9040">9040</a> <em 
class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="L9041" href="#L9041">9041</a>     @Deprecated
-<a class="jxr_linenumber" name="L9042" href="#L9042">9042</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String toString(<strong class="jxr_keyword">final</strong> byte[] bytes, 
<strong class="jxr_keyword">final</strong> String charsetName) <strong 
class="jxr_keyword">throws</strong> UnsupportedEncodingException {
-<a class="jxr_linenumber" name="L9043" href="#L9043">9043</a>         <strong 
class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> 
String(bytes, Charsets.toCharset(charsetName));
-<a class="jxr_linenumber" name="L9044" href="#L9044">9044</a>     }
-<a class="jxr_linenumber" name="L9045" href="#L9045">9045</a> 
-<a class="jxr_linenumber" name="L9046" href="#L9046">9046</a>     <strong 
class="jxr_keyword">private</strong> <strong 
class="jxr_keyword">static</strong> String toStringOrEmpty(<strong 
class="jxr_keyword">final</strong> Object obj) {
-<a class="jxr_linenumber" name="L9047" href="#L9047">9047</a>         <strong 
class="jxr_keyword">return</strong> Objects.toString(obj, EMPTY);
-<a class="jxr_linenumber" name="L9048" href="#L9048">9048</a>     }
-<a class="jxr_linenumber" name="L9049" href="#L9049">9049</a> 
-<a class="jxr_linenumber" name="L9050" href="#L9050">9050</a>     <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L9051" href="#L9051">9051</a> <em 
class="jxr_javadoccomment">     * Removes control characters (char &amp;lt;= 
32) from both</em>
-<a class="jxr_linenumber" name="L9052" href="#L9052">9052</a> <em 
class="jxr_javadoccomment">     * ends of this String, handling {@code null} by 
returning</em>
-<a class="jxr_linenumber" name="L9053" href="#L9053">9053</a> <em 
class="jxr_javadoccomment">     * {@code null}.</em>
-<a class="jxr_linenumber" name="L9054" href="#L9054">9054</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9055" href="#L9055">9055</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;The String is trimmed using {@link 
String#trim()}.</em>
-<a class="jxr_linenumber" name="L9056" href="#L9056">9056</a> <em 
class="jxr_javadoccomment">     * Trim removes start and end characters 
&amp;lt;= 32.</em>
-<a class="jxr_linenumber" name="L9057" href="#L9057">9057</a> <em 
class="jxr_javadoccomment">     * To strip whitespace use {@link 
#strip(String)}.&lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L9058" href="#L9058">9058</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9059" href="#L9059">9059</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;To trim your choice of characters, 
use the</em>
-<a class="jxr_linenumber" name="L9060" href="#L9060">9060</a> <em 
class="jxr_javadoccomment">     * {@link #strip(String, String)} 
methods.&lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L9061" href="#L9061">9061</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9062" href="#L9062">9062</a> <em 
class="jxr_javadoccomment">     * &lt;pre&gt;</em>
-<a class="jxr_linenumber" name="L9063" href="#L9063">9063</a> <em 
class="jxr_javadoccomment">     * StringUtils.trim(null)          = null</em>
-<a class="jxr_linenumber" name="L9064" href="#L9064">9064</a> <em 
class="jxr_javadoccomment">     * StringUtils.trim("")            = ""</em>
-<a class="jxr_linenumber" name="L9065" href="#L9065">9065</a> <em 
class="jxr_javadoccomment">     * StringUtils.trim("     ")       = ""</em>
-<a class="jxr_linenumber" name="L9066" href="#L9066">9066</a> <em 
class="jxr_javadoccomment">     * StringUtils.trim("abc")         = "abc"</em>
-<a class="jxr_linenumber" name="L9067" href="#L9067">9067</a> <em 
class="jxr_javadoccomment">     * StringUtils.trim("    abc    ") = "abc"</em>
-<a class="jxr_linenumber" name="L9068" href="#L9068">9068</a> <em 
class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
-<a class="jxr_linenumber" name="L9069" href="#L9069">9069</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9070" href="#L9070">9070</a> <em 
class="jxr_javadoccomment">     * @param str  the String to be trimmed, may be 
null</em>
-<a class="jxr_linenumber" name="L9071" href="#L9071">9071</a> <em 
class="jxr_javadoccomment">     * @return the trimmed string, {@code null} if 
null String input</em>
-<a class="jxr_linenumber" name="L9072" href="#L9072">9072</a> <em 
class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="L9073" href="#L9073">9073</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String trim(<strong class="jxr_keyword">final</strong> String str) {
-<a class="jxr_linenumber" name="L9074" href="#L9074">9074</a>         <strong 
class="jxr_keyword">return</strong> str == <strong 
class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : 
str.trim();
-<a class="jxr_linenumber" name="L9075" href="#L9075">9075</a>     }
-<a class="jxr_linenumber" name="L9076" href="#L9076">9076</a> 
-<a class="jxr_linenumber" name="L9077" href="#L9077">9077</a>     <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L9078" href="#L9078">9078</a> <em 
class="jxr_javadoccomment">     * Removes control characters (char &amp;lt;= 
32) from both</em>
-<a class="jxr_linenumber" name="L9079" href="#L9079">9079</a> <em 
class="jxr_javadoccomment">     * ends of this String returning an empty String 
("") if the String</em>
-<a class="jxr_linenumber" name="L9080" href="#L9080">9080</a> <em 
class="jxr_javadoccomment">     * is empty ("") after the trim or if it is 
{@code null}.</em>
-<a class="jxr_linenumber" name="L9081" href="#L9081">9081</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9082" href="#L9082">9082</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;The String is trimmed using {@link 
String#trim()}.</em>
-<a class="jxr_linenumber" name="L9083" href="#L9083">9083</a> <em 
class="jxr_javadoccomment">     * Trim removes start and end characters 
&amp;lt;= 32.</em>
-<a class="jxr_linenumber" name="L9084" href="#L9084">9084</a> <em 
class="jxr_javadoccomment">     * To strip whitespace use {@link 
#stripToEmpty(String)}.</em>
-<a class="jxr_linenumber" name="L9085" href="#L9085">9085</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9086" href="#L9086">9086</a> <em 
class="jxr_javadoccomment">     * &lt;pre&gt;</em>
-<a class="jxr_linenumber" name="L9087" href="#L9087">9087</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToEmpty(null)          = 
""</em>
-<a class="jxr_linenumber" name="L9088" href="#L9088">9088</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToEmpty("")            = 
""</em>
-<a class="jxr_linenumber" name="L9089" href="#L9089">9089</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToEmpty("     ")       = 
""</em>
-<a class="jxr_linenumber" name="L9090" href="#L9090">9090</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToEmpty("abc")         = 
"abc"</em>
-<a class="jxr_linenumber" name="L9091" href="#L9091">9091</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToEmpty("    abc    ") = 
"abc"</em>
-<a class="jxr_linenumber" name="L9092" href="#L9092">9092</a> <em 
class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
-<a class="jxr_linenumber" name="L9093" href="#L9093">9093</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9094" href="#L9094">9094</a> <em 
class="jxr_javadoccomment">     * @param str  the String to be trimmed, may be 
null</em>
-<a class="jxr_linenumber" name="L9095" href="#L9095">9095</a> <em 
class="jxr_javadoccomment">     * @return the trimmed String, or an empty 
String if {@code null} input</em>
-<a class="jxr_linenumber" name="L9096" href="#L9096">9096</a> <em 
class="jxr_javadoccomment">     * @since 2.0</em>
-<a class="jxr_linenumber" name="L9097" href="#L9097">9097</a> <em 
class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="L9098" href="#L9098">9098</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String trimToEmpty(<strong class="jxr_keyword">final</strong> String str) {
-<a class="jxr_linenumber" name="L9099" href="#L9099">9099</a>         <strong 
class="jxr_keyword">return</strong> str == <strong 
class="jxr_keyword">null</strong> ? EMPTY : str.trim();
-<a class="jxr_linenumber" name="L9100" href="#L9100">9100</a>     }
-<a class="jxr_linenumber" name="L9101" href="#L9101">9101</a> 
-<a class="jxr_linenumber" name="L9102" href="#L9102">9102</a>     <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L9103" href="#L9103">9103</a> <em 
class="jxr_javadoccomment">     * Removes control characters (char &amp;lt;= 
32) from both</em>
-<a class="jxr_linenumber" name="L9104" href="#L9104">9104</a> <em 
class="jxr_javadoccomment">     * ends of this String returning {@code null} if 
the String is</em>
-<a class="jxr_linenumber" name="L9105" href="#L9105">9105</a> <em 
class="jxr_javadoccomment">     * empty ("") after the trim or if it is {@code 
null}.</em>
-<a class="jxr_linenumber" name="L9106" href="#L9106">9106</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9107" href="#L9107">9107</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;The String is trimmed using {@link 
String#trim()}.</em>
-<a class="jxr_linenumber" name="L9108" href="#L9108">9108</a> <em 
class="jxr_javadoccomment">     * Trim removes start and end characters 
&amp;lt;= 32.</em>
-<a class="jxr_linenumber" name="L9109" href="#L9109">9109</a> <em 
class="jxr_javadoccomment">     * To strip whitespace use {@link 
#stripToNull(String)}.</em>
-<a class="jxr_linenumber" name="L9110" href="#L9110">9110</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9111" href="#L9111">9111</a> <em 
class="jxr_javadoccomment">     * &lt;pre&gt;</em>
-<a class="jxr_linenumber" name="L9112" href="#L9112">9112</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToNull(null)          = 
null</em>
-<a class="jxr_linenumber" name="L9113" href="#L9113">9113</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToNull("")            = 
null</em>
-<a class="jxr_linenumber" name="L9114" href="#L9114">9114</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToNull("     ")       = 
null</em>
-<a class="jxr_linenumber" name="L9115" href="#L9115">9115</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToNull("abc")         = 
"abc"</em>
-<a class="jxr_linenumber" name="L9116" href="#L9116">9116</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToNull("    abc    ") = 
"abc"</em>
-<a class="jxr_linenumber" name="L9117" href="#L9117">9117</a> <em 
class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
-<a class="jxr_linenumber" name="L9118" href="#L9118">9118</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9119" href="#L9119">9119</a> <em 
class="jxr_javadoccomment">     * @param str  the String to be trimmed, may be 
null</em>
-<a class="jxr_linenumber" name="L9120" href="#L9120">9120</a> <em 
class="jxr_javadoccomment">     * @return the trimmed String,</em>
-<a class="jxr_linenumber" name="L9121" href="#L9121">9121</a> <em 
class="jxr_javadoccomment">     *  {@code null} if only chars &amp;lt;= 32, 
empty or null String input</em>
-<a class="jxr_linenumber" name="L9122" href="#L9122">9122</a> <em 
class="jxr_javadoccomment">     * @since 2.0</em>
-<a class="jxr_linenumber" name="L9123" href="#L9123">9123</a> <em 
class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="L9124" href="#L9124">9124</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String trimToNull(<strong class="jxr_keyword">final</strong> String str) {
-<a class="jxr_linenumber" name="L9125" href="#L9125">9125</a>         <strong 
class="jxr_keyword">final</strong> String ts = trim(str);
-<a class="jxr_linenumber" name="L9126" href="#L9126">9126</a>         <strong 
class="jxr_keyword">return</strong> isEmpty(ts) ? <strong 
class="jxr_keyword">null</strong> : ts;
-<a class="jxr_linenumber" name="L9127" href="#L9127">9127</a>     }
-<a class="jxr_linenumber" name="L9128" href="#L9128">9128</a> 
-<a class="jxr_linenumber" name="L9129" href="#L9129">9129</a>     <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L9130" href="#L9130">9130</a> <em 
class="jxr_javadoccomment">     * Truncates a String. This will turn</em>
-<a class="jxr_linenumber" name="L9131" href="#L9131">9131</a> <em 
class="jxr_javadoccomment">     * "Now is the time for all good men" into "Now 
is the time for".</em>
-<a class="jxr_linenumber" name="L9132" href="#L9132">9132</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9133" href="#L9133">9133</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;Specifically:&lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L9134" href="#L9134">9134</a> <em 
class="jxr_javadoccomment">     * &lt;ul&gt;</em>
-<a class="jxr_linenumber" name="L9135" href="#L9135">9135</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;If {@code str} is less than 
{@code maxWidth} characters</em>
-<a class="jxr_linenumber" name="L9136" href="#L9136">9136</a> <em 
class="jxr_javadoccomment">     *       long, return it.&lt;/li&gt;</em>
-<a class="jxr_linenumber" name="L9137" href="#L9137">9137</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;Else truncate it to {@code 
substring(str, 0, maxWidth)}.&lt;/li&gt;</em>
-<a class="jxr_linenumber" name="L9138" href="#L9138">9138</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;If {@code maxWidth} is less than 
{@code 0}, throw an</em>
-<a class="jxr_linenumber" name="L9139" href="#L9139">9139</a> <em 
class="jxr_javadoccomment">     *       {@link 
IllegalArgumentException}.&lt;/li&gt;</em>
-<a class="jxr_linenumber" name="L9140" href="#L9140">9140</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;In no case will it return a 
String of length greater than</em>
-<a class="jxr_linenumber" name="L9141" href="#L9141">9141</a> <em 
class="jxr_javadoccomment">     *       {@code maxWidth}.&lt;/li&gt;</em>
-<a class="jxr_linenumber" name="L9142" href="#L9142">9142</a> <em 
class="jxr_javadoccomment">     * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="L9143" href="#L9143">9143</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9144" href="#L9144">9144</a> <em 
class="jxr_javadoccomment">     * &lt;pre&gt;</em>
-<a class="jxr_linenumber" name="L9145" href="#L9145">9145</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate(null, 0)       = 
null</em>
-<a class="jxr_linenumber" name="L9146" href="#L9146">9146</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate(null, 2)       = 
null</em>
-<a class="jxr_linenumber" name="L9147" href="#L9147">9147</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("", 4)         = ""</em>
-<a class="jxr_linenumber" name="L9148" href="#L9148">9148</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefg", 4)  = 
"abcd"</em>
-<a class="jxr_linenumber" name="L9149" href="#L9149">9149</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefg", 6)  = 
"abcdef"</em>
-<a class="jxr_linenumber" name="L9150" href="#L9150">9150</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefg", 7)  = 
"abcdefg"</em>
-<a class="jxr_linenumber" name="L9151" href="#L9151">9151</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefg", 8)  = 
"abcdefg"</em>
-<a class="jxr_linenumber" name="L9152" href="#L9152">9152</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefg", -1) = throws 
an IllegalArgumentException</em>
-<a class="jxr_linenumber" name="L9153" href="#L9153">9153</a> <em 
class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
-<a class="jxr_linenumber" name="L9154" href="#L9154">9154</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9155" href="#L9155">9155</a> <em 
class="jxr_javadoccomment">     * @param str  the String to truncate, may be 
null</em>
-<a class="jxr_linenumber" name="L9156" href="#L9156">9156</a> <em 
class="jxr_javadoccomment">     * @param maxWidth  maximum length of result 
String, must be positive</em>
-<a class="jxr_linenumber" name="L9157" href="#L9157">9157</a> <em 
class="jxr_javadoccomment">     * @return truncated String, {@code null} if 
null String input</em>
-<a class="jxr_linenumber" name="L9158" href="#L9158">9158</a> <em 
class="jxr_javadoccomment">     * @throws IllegalArgumentException If {@code 
maxWidth} is less than {@code 0}</em>
-<a class="jxr_linenumber" name="L9159" href="#L9159">9159</a> <em 
class="jxr_javadoccomment">     * @since 3.5</em>
-<a class="jxr_linenumber" name="L9160" href="#L9160">9160</a> <em 
class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="L9161" href="#L9161">9161</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String truncate(<strong class="jxr_keyword">final</strong> String str, <strong 
class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> 
maxWidth) {
-<a class="jxr_linenumber" name="L9162" href="#L9162">9162</a>         <strong 
class="jxr_keyword">return</strong> truncate(str, 0, maxWidth);
-<a class="jxr_linenumber" name="L9163" href="#L9163">9163</a>     }
-<a class="jxr_linenumber" name="L9164" href="#L9164">9164</a> 
-<a class="jxr_linenumber" name="L9165" href="#L9165">9165</a>     <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L9166" href="#L9166">9166</a> <em 
class="jxr_javadoccomment">     * Truncates a String. This will turn</em>
-<a class="jxr_linenumber" name="L9167" href="#L9167">9167</a> <em 
class="jxr_javadoccomment">     * "Now is the time for all good men" into "is 
the time for all".</em>
-<a class="jxr_linenumber" name="L9168" href="#L9168">9168</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9169" href="#L9169">9169</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;Works like {@code truncate(String, 
int)}, but allows you to specify</em>
-<a class="jxr_linenumber" name="L9170" href="#L9170">9170</a> <em 
class="jxr_javadoccomment">     * a "left edge" offset.</em>
-<a class="jxr_linenumber" name="L9171" href="#L9171">9171</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9172" href="#L9172">9172</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;Specifically:&lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L9173" href="#L9173">9173</a> <em 
class="jxr_javadoccomment">     * &lt;ul&gt;</em>
-<a class="jxr_linenumber" name="L9174" href="#L9174">9174</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;If {@code str} is less than 
{@code maxWidth} characters</em>
-<a class="jxr_linenumber" name="L9175" href="#L9175">9175</a> <em 
class="jxr_javadoccomment">     *       long, return it.&lt;/li&gt;</em>
-<a class="jxr_linenumber" name="L9176" href="#L9176">9176</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;Else truncate it to {@code 
substring(str, offset, maxWidth)}.&lt;/li&gt;</em>
-<a class="jxr_linenumber" name="L9177" href="#L9177">9177</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;If {@code maxWidth} is less than 
{@code 0}, throw an</em>
+<a class="jxr_linenumber" name="L9034" href="#L9034">9034</a> <em 
class="jxr_javadoccomment">     * @throws NullPointerException</em>
+<a class="jxr_linenumber" name="L9035" href="#L9035">9035</a> <em 
class="jxr_javadoccomment">     *             if the input is null</em>
+<a class="jxr_linenumber" name="L9036" href="#L9036">9036</a> <em 
class="jxr_javadoccomment">     * @deprecated use {@link 
StringUtils#toEncodedString(byte[], Charset)} instead of String constants in 
your code</em>
+<a class="jxr_linenumber" name="L9037" href="#L9037">9037</a> <em 
class="jxr_javadoccomment">     * @since 3.1</em>
+<a class="jxr_linenumber" name="L9038" href="#L9038">9038</a> <em 
class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L9039" href="#L9039">9039</a>     @Deprecated
+<a class="jxr_linenumber" name="L9040" href="#L9040">9040</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String toString(<strong class="jxr_keyword">final</strong> byte[] bytes, 
<strong class="jxr_keyword">final</strong> String charsetName) {
+<a class="jxr_linenumber" name="L9041" href="#L9041">9041</a>         <strong 
class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> 
String(bytes, Charsets.toCharset(charsetName));
+<a class="jxr_linenumber" name="L9042" href="#L9042">9042</a>     }
+<a class="jxr_linenumber" name="L9043" href="#L9043">9043</a> 
+<a class="jxr_linenumber" name="L9044" href="#L9044">9044</a>     <strong 
class="jxr_keyword">private</strong> <strong 
class="jxr_keyword">static</strong> String toStringOrEmpty(<strong 
class="jxr_keyword">final</strong> Object obj) {
+<a class="jxr_linenumber" name="L9045" href="#L9045">9045</a>         <strong 
class="jxr_keyword">return</strong> Objects.toString(obj, EMPTY);
+<a class="jxr_linenumber" name="L9046" href="#L9046">9046</a>     }
+<a class="jxr_linenumber" name="L9047" href="#L9047">9047</a> 
+<a class="jxr_linenumber" name="L9048" href="#L9048">9048</a>     <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L9049" href="#L9049">9049</a> <em 
class="jxr_javadoccomment">     * Removes control characters (char &amp;lt;= 
32) from both</em>
+<a class="jxr_linenumber" name="L9050" href="#L9050">9050</a> <em 
class="jxr_javadoccomment">     * ends of this String, handling {@code null} by 
returning</em>
+<a class="jxr_linenumber" name="L9051" href="#L9051">9051</a> <em 
class="jxr_javadoccomment">     * {@code null}.</em>
+<a class="jxr_linenumber" name="L9052" href="#L9052">9052</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9053" href="#L9053">9053</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;The String is trimmed using {@link 
String#trim()}.</em>
+<a class="jxr_linenumber" name="L9054" href="#L9054">9054</a> <em 
class="jxr_javadoccomment">     * Trim removes start and end characters 
&amp;lt;= 32.</em>
+<a class="jxr_linenumber" name="L9055" href="#L9055">9055</a> <em 
class="jxr_javadoccomment">     * To strip whitespace use {@link 
#strip(String)}.&lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L9056" href="#L9056">9056</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9057" href="#L9057">9057</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;To trim your choice of characters, 
use the</em>
+<a class="jxr_linenumber" name="L9058" href="#L9058">9058</a> <em 
class="jxr_javadoccomment">     * {@link #strip(String, String)} 
methods.&lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L9059" href="#L9059">9059</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9060" href="#L9060">9060</a> <em 
class="jxr_javadoccomment">     * &lt;pre&gt;</em>
+<a class="jxr_linenumber" name="L9061" href="#L9061">9061</a> <em 
class="jxr_javadoccomment">     * StringUtils.trim(null)          = null</em>
+<a class="jxr_linenumber" name="L9062" href="#L9062">9062</a> <em 
class="jxr_javadoccomment">     * StringUtils.trim("")            = ""</em>
+<a class="jxr_linenumber" name="L9063" href="#L9063">9063</a> <em 
class="jxr_javadoccomment">     * StringUtils.trim("     ")       = ""</em>
+<a class="jxr_linenumber" name="L9064" href="#L9064">9064</a> <em 
class="jxr_javadoccomment">     * StringUtils.trim("abc")         = "abc"</em>
+<a class="jxr_linenumber" name="L9065" href="#L9065">9065</a> <em 
class="jxr_javadoccomment">     * StringUtils.trim("    abc    ") = "abc"</em>
+<a class="jxr_linenumber" name="L9066" href="#L9066">9066</a> <em 
class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
+<a class="jxr_linenumber" name="L9067" href="#L9067">9067</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9068" href="#L9068">9068</a> <em 
class="jxr_javadoccomment">     * @param str  the String to be trimmed, may be 
null</em>
+<a class="jxr_linenumber" name="L9069" href="#L9069">9069</a> <em 
class="jxr_javadoccomment">     * @return the trimmed string, {@code null} if 
null String input</em>
+<a class="jxr_linenumber" name="L9070" href="#L9070">9070</a> <em 
class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L9071" href="#L9071">9071</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String trim(<strong class="jxr_keyword">final</strong> String str) {
+<a class="jxr_linenumber" name="L9072" href="#L9072">9072</a>         <strong 
class="jxr_keyword">return</strong> str == <strong 
class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : 
str.trim();
+<a class="jxr_linenumber" name="L9073" href="#L9073">9073</a>     }
+<a class="jxr_linenumber" name="L9074" href="#L9074">9074</a> 
+<a class="jxr_linenumber" name="L9075" href="#L9075">9075</a>     <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L9076" href="#L9076">9076</a> <em 
class="jxr_javadoccomment">     * Removes control characters (char &amp;lt;= 
32) from both</em>
+<a class="jxr_linenumber" name="L9077" href="#L9077">9077</a> <em 
class="jxr_javadoccomment">     * ends of this String returning an empty String 
("") if the String</em>
+<a class="jxr_linenumber" name="L9078" href="#L9078">9078</a> <em 
class="jxr_javadoccomment">     * is empty ("") after the trim or if it is 
{@code null}.</em>
+<a class="jxr_linenumber" name="L9079" href="#L9079">9079</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9080" href="#L9080">9080</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;The String is trimmed using {@link 
String#trim()}.</em>
+<a class="jxr_linenumber" name="L9081" href="#L9081">9081</a> <em 
class="jxr_javadoccomment">     * Trim removes start and end characters 
&amp;lt;= 32.</em>
+<a class="jxr_linenumber" name="L9082" href="#L9082">9082</a> <em 
class="jxr_javadoccomment">     * To strip whitespace use {@link 
#stripToEmpty(String)}.</em>
+<a class="jxr_linenumber" name="L9083" href="#L9083">9083</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9084" href="#L9084">9084</a> <em 
class="jxr_javadoccomment">     * &lt;pre&gt;</em>
+<a class="jxr_linenumber" name="L9085" href="#L9085">9085</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToEmpty(null)          = 
""</em>
+<a class="jxr_linenumber" name="L9086" href="#L9086">9086</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToEmpty("")            = 
""</em>
+<a class="jxr_linenumber" name="L9087" href="#L9087">9087</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToEmpty("     ")       = 
""</em>
+<a class="jxr_linenumber" name="L9088" href="#L9088">9088</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToEmpty("abc")         = 
"abc"</em>
+<a class="jxr_linenumber" name="L9089" href="#L9089">9089</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToEmpty("    abc    ") = 
"abc"</em>
+<a class="jxr_linenumber" name="L9090" href="#L9090">9090</a> <em 
class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
+<a class="jxr_linenumber" name="L9091" href="#L9091">9091</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9092" href="#L9092">9092</a> <em 
class="jxr_javadoccomment">     * @param str  the String to be trimmed, may be 
null</em>
+<a class="jxr_linenumber" name="L9093" href="#L9093">9093</a> <em 
class="jxr_javadoccomment">     * @return the trimmed String, or an empty 
String if {@code null} input</em>
+<a class="jxr_linenumber" name="L9094" href="#L9094">9094</a> <em 
class="jxr_javadoccomment">     * @since 2.0</em>
+<a class="jxr_linenumber" name="L9095" href="#L9095">9095</a> <em 
class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L9096" href="#L9096">9096</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String trimToEmpty(<strong class="jxr_keyword">final</strong> String str) {
+<a class="jxr_linenumber" name="L9097" href="#L9097">9097</a>         <strong 
class="jxr_keyword">return</strong> str == <strong 
class="jxr_keyword">null</strong> ? EMPTY : str.trim();
+<a class="jxr_linenumber" name="L9098" href="#L9098">9098</a>     }
+<a class="jxr_linenumber" name="L9099" href="#L9099">9099</a> 
+<a class="jxr_linenumber" name="L9100" href="#L9100">9100</a>     <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L9101" href="#L9101">9101</a> <em 
class="jxr_javadoccomment">     * Removes control characters (char &amp;lt;= 
32) from both</em>
+<a class="jxr_linenumber" name="L9102" href="#L9102">9102</a> <em 
class="jxr_javadoccomment">     * ends of this String returning {@code null} if 
the String is</em>
+<a class="jxr_linenumber" name="L9103" href="#L9103">9103</a> <em 
class="jxr_javadoccomment">     * empty ("") after the trim or if it is {@code 
null}.</em>
+<a class="jxr_linenumber" name="L9104" href="#L9104">9104</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9105" href="#L9105">9105</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;The String is trimmed using {@link 
String#trim()}.</em>
+<a class="jxr_linenumber" name="L9106" href="#L9106">9106</a> <em 
class="jxr_javadoccomment">     * Trim removes start and end characters 
&amp;lt;= 32.</em>
+<a class="jxr_linenumber" name="L9107" href="#L9107">9107</a> <em 
class="jxr_javadoccomment">     * To strip whitespace use {@link 
#stripToNull(String)}.</em>
+<a class="jxr_linenumber" name="L9108" href="#L9108">9108</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9109" href="#L9109">9109</a> <em 
class="jxr_javadoccomment">     * &lt;pre&gt;</em>
+<a class="jxr_linenumber" name="L9110" href="#L9110">9110</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToNull(null)          = 
null</em>
+<a class="jxr_linenumber" name="L9111" href="#L9111">9111</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToNull("")            = 
null</em>
+<a class="jxr_linenumber" name="L9112" href="#L9112">9112</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToNull("     ")       = 
null</em>
+<a class="jxr_linenumber" name="L9113" href="#L9113">9113</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToNull("abc")         = 
"abc"</em>
+<a class="jxr_linenumber" name="L9114" href="#L9114">9114</a> <em 
class="jxr_javadoccomment">     * StringUtils.trimToNull("    abc    ") = 
"abc"</em>
+<a class="jxr_linenumber" name="L9115" href="#L9115">9115</a> <em 
class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
+<a class="jxr_linenumber" name="L9116" href="#L9116">9116</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9117" href="#L9117">9117</a> <em 
class="jxr_javadoccomment">     * @param str  the String to be trimmed, may be 
null</em>
+<a class="jxr_linenumber" name="L9118" href="#L9118">9118</a> <em 
class="jxr_javadoccomment">     * @return the trimmed String,</em>
+<a class="jxr_linenumber" name="L9119" href="#L9119">9119</a> <em 
class="jxr_javadoccomment">     *  {@code null} if only chars &amp;lt;= 32, 
empty or null String input</em>
+<a class="jxr_linenumber" name="L9120" href="#L9120">9120</a> <em 
class="jxr_javadoccomment">     * @since 2.0</em>
+<a class="jxr_linenumber" name="L9121" href="#L9121">9121</a> <em 
class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L9122" href="#L9122">9122</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String trimToNull(<strong class="jxr_keyword">final</strong> String str) {
+<a class="jxr_linenumber" name="L9123" href="#L9123">9123</a>         <strong 
class="jxr_keyword">final</strong> String ts = trim(str);
+<a class="jxr_linenumber" name="L9124" href="#L9124">9124</a>         <strong 
class="jxr_keyword">return</strong> isEmpty(ts) ? <strong 
class="jxr_keyword">null</strong> : ts;
+<a class="jxr_linenumber" name="L9125" href="#L9125">9125</a>     }
+<a class="jxr_linenumber" name="L9126" href="#L9126">9126</a> 
+<a class="jxr_linenumber" name="L9127" href="#L9127">9127</a>     <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L9128" href="#L9128">9128</a> <em 
class="jxr_javadoccomment">     * Truncates a String. This will turn</em>
+<a class="jxr_linenumber" name="L9129" href="#L9129">9129</a> <em 
class="jxr_javadoccomment">     * "Now is the time for all good men" into "Now 
is the time for".</em>
+<a class="jxr_linenumber" name="L9130" href="#L9130">9130</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9131" href="#L9131">9131</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;Specifically:&lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L9132" href="#L9132">9132</a> <em 
class="jxr_javadoccomment">     * &lt;ul&gt;</em>
+<a class="jxr_linenumber" name="L9133" href="#L9133">9133</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;If {@code str} is less than 
{@code maxWidth} characters</em>
+<a class="jxr_linenumber" name="L9134" href="#L9134">9134</a> <em 
class="jxr_javadoccomment">     *       long, return it.&lt;/li&gt;</em>
+<a class="jxr_linenumber" name="L9135" href="#L9135">9135</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;Else truncate it to {@code 
substring(str, 0, maxWidth)}.&lt;/li&gt;</em>
+<a class="jxr_linenumber" name="L9136" href="#L9136">9136</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;If {@code maxWidth} is less than 
{@code 0}, throw an</em>
+<a class="jxr_linenumber" name="L9137" href="#L9137">9137</a> <em 
class="jxr_javadoccomment">     *       {@link 
IllegalArgumentException}.&lt;/li&gt;</em>
+<a class="jxr_linenumber" name="L9138" href="#L9138">9138</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;In no case will it return a 
String of length greater than</em>
+<a class="jxr_linenumber" name="L9139" href="#L9139">9139</a> <em 
class="jxr_javadoccomment">     *       {@code maxWidth}.&lt;/li&gt;</em>
+<a class="jxr_linenumber" name="L9140" href="#L9140">9140</a> <em 
class="jxr_javadoccomment">     * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="L9141" href="#L9141">9141</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9142" href="#L9142">9142</a> <em 
class="jxr_javadoccomment">     * &lt;pre&gt;</em>
+<a class="jxr_linenumber" name="L9143" href="#L9143">9143</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate(null, 0)       = 
null</em>
+<a class="jxr_linenumber" name="L9144" href="#L9144">9144</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate(null, 2)       = 
null</em>
+<a class="jxr_linenumber" name="L9145" href="#L9145">9145</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("", 4)         = ""</em>
+<a class="jxr_linenumber" name="L9146" href="#L9146">9146</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefg", 4)  = 
"abcd"</em>
+<a class="jxr_linenumber" name="L9147" href="#L9147">9147</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefg", 6)  = 
"abcdef"</em>
+<a class="jxr_linenumber" name="L9148" href="#L9148">9148</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefg", 7)  = 
"abcdefg"</em>
+<a class="jxr_linenumber" name="L9149" href="#L9149">9149</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefg", 8)  = 
"abcdefg"</em>
+<a class="jxr_linenumber" name="L9150" href="#L9150">9150</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefg", -1) = throws 
an IllegalArgumentException</em>
+<a class="jxr_linenumber" name="L9151" href="#L9151">9151</a> <em 
class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
+<a class="jxr_linenumber" name="L9152" href="#L9152">9152</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9153" href="#L9153">9153</a> <em 
class="jxr_javadoccomment">     * @param str  the String to truncate, may be 
null</em>
+<a class="jxr_linenumber" name="L9154" href="#L9154">9154</a> <em 
class="jxr_javadoccomment">     * @param maxWidth  maximum length of result 
String, must be positive</em>
+<a class="jxr_linenumber" name="L9155" href="#L9155">9155</a> <em 
class="jxr_javadoccomment">     * @return truncated String, {@code null} if 
null String input</em>
+<a class="jxr_linenumber" name="L9156" href="#L9156">9156</a> <em 
class="jxr_javadoccomment">     * @throws IllegalArgumentException If {@code 
maxWidth} is less than {@code 0}</em>
+<a class="jxr_linenumber" name="L9157" href="#L9157">9157</a> <em 
class="jxr_javadoccomment">     * @since 3.5</em>
+<a class="jxr_linenumber" name="L9158" href="#L9158">9158</a> <em 
class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L9159" href="#L9159">9159</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String truncate(<strong class="jxr_keyword">final</strong> String str, <strong 
class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> 
maxWidth) {
+<a class="jxr_linenumber" name="L9160" href="#L9160">9160</a>         <strong 
class="jxr_keyword">return</strong> truncate(str, 0, maxWidth);
+<a class="jxr_linenumber" name="L9161" href="#L9161">9161</a>     }
+<a class="jxr_linenumber" name="L9162" href="#L9162">9162</a> 
+<a class="jxr_linenumber" name="L9163" href="#L9163">9163</a>     <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L9164" href="#L9164">9164</a> <em 
class="jxr_javadoccomment">     * Truncates a String. This will turn</em>
+<a class="jxr_linenumber" name="L9165" href="#L9165">9165</a> <em 
class="jxr_javadoccomment">     * "Now is the time for all good men" into "is 
the time for all".</em>
+<a class="jxr_linenumber" name="L9166" href="#L9166">9166</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9167" href="#L9167">9167</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;Works like {@code truncate(String, 
int)}, but allows you to specify</em>
+<a class="jxr_linenumber" name="L9168" href="#L9168">9168</a> <em 
class="jxr_javadoccomment">     * a "left edge" offset.</em>
+<a class="jxr_linenumber" name="L9169" href="#L9169">9169</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9170" href="#L9170">9170</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;Specifically:&lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L9171" href="#L9171">9171</a> <em 
class="jxr_javadoccomment">     * &lt;ul&gt;</em>
+<a class="jxr_linenumber" name="L9172" href="#L9172">9172</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;If {@code str} is less than 
{@code maxWidth} characters</em>
+<a class="jxr_linenumber" name="L9173" href="#L9173">9173</a> <em 
class="jxr_javadoccomment">     *       long, return it.&lt;/li&gt;</em>
+<a class="jxr_linenumber" name="L9174" href="#L9174">9174</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;Else truncate it to {@code 
substring(str, offset, maxWidth)}.&lt;/li&gt;</em>
+<a class="jxr_linenumber" name="L9175" href="#L9175">9175</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;If {@code maxWidth} is less than 
{@code 0}, throw an</em>
+<a class="jxr_linenumber" name="L9176" href="#L9176">9176</a> <em 
class="jxr_javadoccomment">     *       {@link 
IllegalArgumentException}.&lt;/li&gt;</em>
+<a class="jxr_linenumber" name="L9177" href="#L9177">9177</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;If {@code offset} is less than 
{@code 0}, throw an</em>
 <a class="jxr_linenumber" name="L9178" href="#L9178">9178</a> <em 
class="jxr_javadoccomment">     *       {@link 
IllegalArgumentException}.&lt;/li&gt;</em>
-<a class="jxr_linenumber" name="L9179" href="#L9179">9179</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;If {@code offset} is less than 
{@code 0}, throw an</em>
-<a class="jxr_linenumber" name="L9180" href="#L9180">9180</a> <em 
class="jxr_javadoccomment">     *       {@link 
IllegalArgumentException}.&lt;/li&gt;</em>
-<a class="jxr_linenumber" name="L9181" href="#L9181">9181</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;In no case will it return a 
String of length greater than</em>
-<a class="jxr_linenumber" name="L9182" href="#L9182">9182</a> <em 
class="jxr_javadoccomment">     *       {@code maxWidth}.&lt;/li&gt;</em>
-<a class="jxr_linenumber" name="L9183" href="#L9183">9183</a> <em 
class="jxr_javadoccomment">     * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="L9184" href="#L9184">9184</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9185" href="#L9185">9185</a> <em 
class="jxr_javadoccomment">     * &lt;pre&gt;</em>
-<a class="jxr_linenumber" name="L9186" href="#L9186">9186</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate(null, 0, 0) = null</em>
-<a class="jxr_linenumber" name="L9187" href="#L9187">9187</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate(null, 2, 4) = null</em>
-<a class="jxr_linenumber" name="L9188" href="#L9188">9188</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("", 0, 10) = ""</em>
-<a class="jxr_linenumber" name="L9189" href="#L9189">9189</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("", 2, 10) = ""</em>
-<a class="jxr_linenumber" name="L9190" href="#L9190">9190</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghij", 0, 3) = 
"abc"</em>
-<a class="jxr_linenumber" name="L9191" href="#L9191">9191</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghij", 5, 6) = 
"fghij"</em>
-<a class="jxr_linenumber" name="L9192" href="#L9192">9192</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("raspberry peach", 10, 
15) = "peach"</em>
-<a class="jxr_linenumber" name="L9193" href="#L9193">9193</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 0, 
10) = "abcdefghij"</em>
-<a class="jxr_linenumber" name="L9194" href="#L9194">9194</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", -1, 
10) = throws an IllegalArgumentException</em>
-<a class="jxr_linenumber" name="L9195" href="#L9195">9195</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 
Integer.MIN_VALUE, 10) = throws an IllegalArgumentException</em>
-<a class="jxr_linenumber" name="L9196" href="#L9196">9196</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 
Integer.MIN_VALUE, Integer.MAX_VALUE) = throws an IllegalArgumentException</em>
-<a class="jxr_linenumber" name="L9197" href="#L9197">9197</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 0, 
Integer.MAX_VALUE) = "abcdefghijklmno"</em>
-<a class="jxr_linenumber" name="L9198" href="#L9198">9198</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 1, 
10) = "bcdefghijk"</em>
-<a class="jxr_linenumber" name="L9199" href="#L9199">9199</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 2, 
10) = "cdefghijkl"</em>
-<a class="jxr_linenumber" name="L9200" href="#L9200">9200</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 3, 
10) = "defghijklm"</em>
-<a class="jxr_linenumber" name="L9201" href="#L9201">9201</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 4, 
10) = "efghijklmn"</em>
-<a class="jxr_linenumber" name="L9202" href="#L9202">9202</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 5, 
10) = "fghijklmno"</em>
-<a class="jxr_linenumber" name="L9203" href="#L9203">9203</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 5, 5) 
= "fghij"</em>
-<a class="jxr_linenumber" name="L9204" href="#L9204">9204</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 5, 3) 
= "fgh"</em>
-<a class="jxr_linenumber" name="L9205" href="#L9205">9205</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 10, 
3) = "klm"</em>
-<a class="jxr_linenumber" name="L9206" href="#L9206">9206</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 10, 
Integer.MAX_VALUE) = "klmno"</em>
-<a class="jxr_linenumber" name="L9207" href="#L9207">9207</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 13, 
1) = "n"</em>
-<a class="jxr_linenumber" name="L9208" href="#L9208">9208</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 13, 
Integer.MAX_VALUE) = "no"</em>
-<a class="jxr_linenumber" name="L9209" href="#L9209">9209</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 14, 
1) = "o"</em>
-<a class="jxr_linenumber" name="L9210" href="#L9210">9210</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 14, 
Integer.MAX_VALUE) = "o"</em>
-<a class="jxr_linenumber" name="L9211" href="#L9211">9211</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 15, 
1) = ""</em>
-<a class="jxr_linenumber" name="L9212" href="#L9212">9212</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 15, 
Integer.MAX_VALUE) = ""</em>
-<a class="jxr_linenumber" name="L9213" href="#L9213">9213</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 
Integer.MAX_VALUE, Integer.MAX_VALUE) = ""</em>
-<a class="jxr_linenumber" name="L9214" href="#L9214">9214</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghij", 3, -1) = 
throws an IllegalArgumentException</em>
-<a class="jxr_linenumber" name="L9215" href="#L9215">9215</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghij", -2, 4) = 
throws an IllegalArgumentException</em>
-<a class="jxr_linenumber" name="L9216" href="#L9216">9216</a> <em 
class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
-<a class="jxr_linenumber" name="L9217" href="#L9217">9217</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9218" href="#L9218">9218</a> <em 
class="jxr_javadoccomment">     * @param str  the String to truncate, may be 
null</em>
-<a class="jxr_linenumber" name="L9219" href="#L9219">9219</a> <em 
class="jxr_javadoccomment">     * @param offset  left edge of source String</em>
-<a class="jxr_linenumber" name="L9220" href="#L9220">9220</a> <em 
class="jxr_javadoccomment">     * @param maxWidth  maximum length of result 
String, must be positive</em>
-<a class="jxr_linenumber" name="L9221" href="#L9221">9221</a> <em 
class="jxr_javadoccomment">     * @return truncated String, {@code null} if 
null String input</em>
-<a class="jxr_linenumber" name="L9222" href="#L9222">9222</a> <em 
class="jxr_javadoccomment">     * @throws IllegalArgumentException If {@code 
offset} or {@code maxWidth} is less than {@code 0}</em>
-<a class="jxr_linenumber" name="L9223" href="#L9223">9223</a> <em 
class="jxr_javadoccomment">     * @since 3.5</em>
-<a class="jxr_linenumber" name="L9224" href="#L9224">9224</a> <em 
class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="L9225" href="#L9225">9225</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String truncate(<strong class="jxr_keyword">final</strong> String str, <strong 
class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> 
offset, <strong class="jxr_keyword">final</strong> <strong 
class="jxr_keyword">int</strong> maxWidth) {
-<a class="jxr_linenumber" name="L9226" href="#L9226">9226</a>         <strong 
class="jxr_keyword">if</strong> (offset &lt; 0) {
-<a class="jxr_linenumber" name="L9227" href="#L9227">9227</a>             
<strong class="jxr_keyword">throw</strong> <strong 
class="jxr_keyword">new</strong> IllegalArgumentException(<span 
class="jxr_string">"offset cannot be negative"</span>);
-<a class="jxr_linenumber" name="L9228" href="#L9228">9228</a>         }
-<a class="jxr_linenumber" name="L9229" href="#L9229">9229</a>         <strong 
class="jxr_keyword">if</strong> (maxWidth &lt; 0) {
-<a class="jxr_linenumber" name="L9230" href="#L9230">9230</a>             
<strong class="jxr_keyword">throw</strong> <strong 
class="jxr_keyword">new</strong> IllegalArgumentException(<span 
class="jxr_string">"maxWith cannot be negative"</span>);
-<a class="jxr_linenumber" name="L9231" href="#L9231">9231</a>         }
-<a class="jxr_linenumber" name="L9232" href="#L9232">9232</a>         <strong 
class="jxr_keyword">if</strong> (str == <strong 
class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L9233" href="#L9233">9233</a>             
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L9234" href="#L9234">9234</a>         }
-<a class="jxr_linenumber" name="L9235" href="#L9235">9235</a>         <strong 
class="jxr_keyword">if</strong> (offset &gt; str.length()) {
-<a class="jxr_linenumber" name="L9236" href="#L9236">9236</a>             
<strong class="jxr_keyword">return</strong> EMPTY;
-<a class="jxr_linenumber" name="L9237" href="#L9237">9237</a>         }
-<a class="jxr_linenumber" name="L9238" href="#L9238">9238</a>         <strong 
class="jxr_keyword">if</strong> (str.length() &gt; maxWidth) {
-<a class="jxr_linenumber" name="L9239" href="#L9239">9239</a>             
<strong class="jxr_keyword">final</strong> <strong 
class="jxr_keyword">int</strong> ix = Math.min(offset + maxWidth, str.length());
-<a class="jxr_linenumber" name="L9240" href="#L9240">9240</a>             
<strong class="jxr_keyword">return</strong> str.substring(offset, ix);
-<a class="jxr_linenumber" name="L9241" href="#L9241">9241</a>         }
-<a class="jxr_linenumber" name="L9242" href="#L9242">9242</a>         <strong 
class="jxr_keyword">return</strong> str.substring(offset);
-<a class="jxr_linenumber" name="L9243" href="#L9243">9243</a>     }
-<a class="jxr_linenumber" name="L9244" href="#L9244">9244</a> 
-<a class="jxr_linenumber" name="L9245" href="#L9245">9245</a>     <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L9246" href="#L9246">9246</a> <em 
class="jxr_javadoccomment">     * Uncapitalizes a String, changing the first 
character to lower case as</em>
-<a class="jxr_linenumber" name="L9247" href="#L9247">9247</a> <em 
class="jxr_javadoccomment">     * per {@link Character#toLowerCase(int)}. No 
other characters are changed.</em>
-<a class="jxr_linenumber" name="L9248" href="#L9248">9248</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9249" href="#L9249">9249</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;For a word based algorithm, see 
{@link org.apache.commons.text.WordUtils#uncapitalize(String)}.</em>
-<a class="jxr_linenumber" name="L9250" href="#L9250">9250</a> <em 
class="jxr_javadoccomment">     * A {@code null} input String returns {@code 
null}.&lt;/p&gt;</em>
-<a class="jxr_linenumber" name="L9251" href="#L9251">9251</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9252" href="#L9252">9252</a> <em 
class="jxr_javadoccomment">     * &lt;pre&gt;</em>
-<a class="jxr_linenumber" name="L9253" href="#L9253">9253</a> <em 
class="jxr_javadoccomment">     * StringUtils.uncapitalize(null)  = null</em>
-<a class="jxr_linenumber" name="L9254" href="#L9254">9254</a> <em 
class="jxr_javadoccomment">     * StringUtils.uncapitalize("")    = ""</em>
-<a class="jxr_linenumber" name="L9255" href="#L9255">9255</a> <em 
class="jxr_javadoccomment">     * StringUtils.uncapitalize("cat") = "cat"</em>
-<a class="jxr_linenumber" name="L9256" href="#L9256">9256</a> <em 
class="jxr_javadoccomment">     * StringUtils.uncapitalize("Cat") = "cat"</em>
-<a class="jxr_linenumber" name="L9257" href="#L9257">9257</a> <em 
class="jxr_javadoccomment">     * StringUtils.uncapitalize("CAT") = "cAT"</em>
-<a class="jxr_linenumber" name="L9258" href="#L9258">9258</a> <em 
class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
-<a class="jxr_linenumber" name="L9259" href="#L9259">9259</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9260" href="#L9260">9260</a> <em 
class="jxr_javadoccomment">     * @param str the String to uncapitalize, may be 
null</em>
-<a class="jxr_linenumber" name="L9261" href="#L9261">9261</a> <em 
class="jxr_javadoccomment">     * @return the uncapitalized String, {@code 
null} if null String input</em>
-<a class="jxr_linenumber" name="L9262" href="#L9262">9262</a> <em 
class="jxr_javadoccomment">     * @see 
org.apache.commons.text.WordUtils#uncapitalize(String)</em>
-<a class="jxr_linenumber" name="L9263" href="#L9263">9263</a> <em 
class="jxr_javadoccomment">     * @see #capitalize(String)</em>
-<a class="jxr_linenumber" name="L9264" href="#L9264">9264</a> <em 
class="jxr_javadoccomment">     * @since 2.0</em>
-<a class="jxr_linenumber" name="L9265" href="#L9265">9265</a> <em 
class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="L9266" href="#L9266">9266</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String uncapitalize(<strong class="jxr_keyword">final</strong> String str) {
-<a class="jxr_linenumber" name="L9267" href="#L9267">9267</a>         <strong 
class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> 
strLen = length(str);
-<a class="jxr_linenumber" name="L9268" href="#L9268">9268</a>         <strong 
class="jxr_keyword">if</strong> (strLen == 0) {
-<a class="jxr_linenumber" name="L9269" href="#L9269">9269</a>             
<strong class="jxr_keyword">return</strong> str;
-<a class="jxr_linenumber" name="L9270" href="#L9270">9270</a>         }
-<a class="jxr_linenumber" name="L9271" href="#L9271">9271</a> 
-<a class="jxr_linenumber" name="L9272" href="#L9272">9272</a>         <strong 
class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> 
firstCodePoint = str.codePointAt(0);
-<a class="jxr_linenumber" name="L9273" href="#L9273">9273</a>         <strong 
class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> 
newCodePoint = Character.toLowerCase(firstCodePoint);
-<a class="jxr_linenumber" name="L9274" href="#L9274">9274</a>         <strong 
class="jxr_keyword">if</strong> (firstCodePoint == newCodePoint) {
-<a class="jxr_linenumber" name="L9275" href="#L9275">9275</a>             <em 
class="jxr_comment">// already capitalized</em>
-<a class="jxr_linenumber" name="L9276" href="#L9276">9276</a>             
<strong class="jxr_keyword">return</strong> str;
-<a class="jxr_linenumber" name="L9277" href="#L9277">9277</a>         }
-<a class="jxr_linenumber" name="L9278" href="#L9278">9278</a> 
-<a class="jxr_linenumber" name="L9279" href="#L9279">9279</a>         <strong 
class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong>[] 
newCodePoints = <strong class="jxr_keyword">new</strong> <strong 
class="jxr_keyword">int</strong>[strLen]; <em class="jxr_comment">// cannot be 
longer than the char array</em>
-<a class="jxr_linenumber" name="L9280" href="#L9280">9280</a>         <strong 
class="jxr_keyword">int</strong> outOffset = 0;
-<a class="jxr_linenumber" name="L9281" href="#L9281">9281</a>         
newCodePoints[outOffset++] = newCodePoint; <em class="jxr_comment">// copy the 
first code point</em>
-<a class="jxr_linenumber" name="L9282" href="#L9282">9282</a>         <strong 
class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> 
inOffset = Character.charCount(firstCodePoint); inOffset &lt; strLen; ) {
-<a class="jxr_linenumber" name="L9283" href="#L9283">9283</a>             
<strong class="jxr_keyword">final</strong> <strong 
class="jxr_keyword">int</strong> codePoint = str.codePointAt(inOffset);
-<a class="jxr_linenumber" name="L9284" href="#L9284">9284</a>             
newCodePoints[outOffset++] = codePoint; <em class="jxr_comment">// copy the 
remaining ones</em>
-<a class="jxr_linenumber" name="L9285" href="#L9285">9285</a>             
inOffset += Character.charCount(codePoint);
-<a class="jxr_linenumber" name="L9286" href="#L9286">9286</a>          }
-<a class="jxr_linenumber" name="L9287" href="#L9287">9287</a>         <strong 
class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> 
String(newCodePoints, 0, outOffset);
-<a class="jxr_linenumber" name="L9288" href="#L9288">9288</a>     }
-<a class="jxr_linenumber" name="L9289" href="#L9289">9289</a> 
-<a class="jxr_linenumber" name="L9290" href="#L9290">9290</a>     <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L9291" href="#L9291">9291</a> <em 
class="jxr_javadoccomment">     * Unwraps a given string from a character.</em>
-<a class="jxr_linenumber" name="L9292" href="#L9292">9292</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9293" href="#L9293">9293</a> <em 
class="jxr_javadoccomment">     * &lt;pre&gt;</em>
-<a class="jxr_linenumber" name="L9294" href="#L9294">9294</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap(null, null)         = 
null</em>
-<a class="jxr_linenumber" name="L9295" href="#L9295">9295</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap(null, '\0')         = 
null</em>
-<a class="jxr_linenumber" name="L9296" href="#L9296">9296</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap(null, '1')          = 
null</em>
-<a class="jxr_linenumber" name="L9297" href="#L9297">9297</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("a", 'a')           = 
"a"</em>
-<a class="jxr_linenumber" name="L9298" href="#L9298">9298</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("aa", 'a')           = 
""</em>
-<a class="jxr_linenumber" name="L9299" href="#L9299">9299</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("\'abc\'", '\'')    = 
"abc"</em>
-<a class="jxr_linenumber" name="L9300" href="#L9300">9300</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("AABabcBAA", 'A')   = 
"ABabcBA"</em>
-<a class="jxr_linenumber" name="L9301" href="#L9301">9301</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("A", '#')           = 
"A"</em>
-<a class="jxr_linenumber" name="L9302" href="#L9302">9302</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("#A", '#')          = 
"#A"</em>
-<a class="jxr_linenumber" name="L9303" href="#L9303">9303</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("A#", '#')          = 
"A#"</em>
-<a class="jxr_linenumber" name="L9304" href="#L9304">9304</a> <em 
class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
-<a class="jxr_linenumber" name="L9305" href="#L9305">9305</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9306" href="#L9306">9306</a> <em 
class="jxr_javadoccomment">     * @param str</em>
-<a class="jxr_linenumber" name="L9307" href="#L9307">9307</a> <em 
class="jxr_javadoccomment">     *          the String to be unwrapped, can be 
null</em>
-<a class="jxr_linenumber" name="L9308" href="#L9308">9308</a> <em 
class="jxr_javadoccomment">     * @param wrapChar</em>
-<a class="jxr_linenumber" name="L9309" href="#L9309">9309</a> <em 
class="jxr_javadoccomment">     *          the character used to unwrap</em>
-<a class="jxr_linenumber" name="L9310" href="#L9310">9310</a> <em 
class="jxr_javadoccomment">     * @return unwrapped String or the original 
string</em>
-<a class="jxr_linenumber" name="L9311" href="#L9311">9311</a> <em 
class="jxr_javadoccomment">     *          if it is not quoted properly with 
the wrapChar</em>
-<a class="jxr_linenumber" name="L9312" href="#L9312">9312</a> <em 
class="jxr_javadoccomment">     * @since 3.6</em>
-<a class="jxr_linenumber" name="L9313" href="#L9313">9313</a> <em 
class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="L9314" href="#L9314">9314</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String unwrap(<strong class="jxr_keyword">final</strong> String str, <strong 
class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong> 
wrapChar) {
-<a class="jxr_linenumber" name="L9315" href="#L9315">9315</a>         <strong 
class="jxr_keyword">if</strong> (isEmpty(str) || wrapChar == CharUtils.NUL || 
str.length() == 1) {
-<a class="jxr_linenumber" name="L9316" href="#L9316">9316</a>             
<strong class="jxr_keyword">return</strong> str;
-<a class="jxr_linenumber" name="L9317" href="#L9317">9317</a>         }
-<a class="jxr_linenumber" name="L9318" href="#L9318">9318</a> 
-<a class="jxr_linenumber" name="L9319" href="#L9319">9319</a>         <strong 
class="jxr_keyword">if</strong> (str.charAt(0) == wrapChar &amp;&amp; 
str.charAt(str.length() - 1) == wrapChar) {
-<a class="jxr_linenumber" name="L9320" href="#L9320">9320</a>             
<strong class="jxr_keyword">final</strong> <strong 
class="jxr_keyword">int</strong> startIndex = 0;
-<a class="jxr_linenumber" name="L9321" href="#L9321">9321</a>             
<strong class="jxr_keyword">final</strong> <strong 
class="jxr_keyword">int</strong> endIndex = str.length() - 1;
-<a class="jxr_linenumber" name="L9322" href="#L9322">9322</a> 
-<a class="jxr_linenumber" name="L9323" href="#L9323">9323</a>             
<strong class="jxr_keyword">return</strong> str.substring(startIndex + 1, 
endIndex);
-<a class="jxr_linenumber" name="L9324" href="#L9324">9324</a>         }
-<a class="jxr_linenumber" name="L9325" href="#L9325">9325</a> 
-<a class="jxr_linenumber" name="L9326" href="#L9326">9326</a>         <strong 
class="jxr_keyword">return</strong> str;
-<a class="jxr_linenumber" name="L9327" href="#L9327">9327</a>     }
-<a class="jxr_linenumber" name="L9328" href="#L9328">9328</a> 
-<a class="jxr_linenumber" name="L9329" href="#L9329">9329</a>     <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L9330" href="#L9330">9330</a> <em 
class="jxr_javadoccomment">     * Unwraps a given string from another 
string.</em>
-<a class="jxr_linenumber" name="L9331" href="#L9331">9331</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9332" href="#L9332">9332</a> <em 
class="jxr_javadoccomment">     * &lt;pre&gt;</em>
-<a class="jxr_linenumber" name="L9333" href="#L9333">9333</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap(null, null)         = 
null</em>
-<a class="jxr_linenumber" name="L9334" href="#L9334">9334</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap(null, "")           = 
null</em>
-<a class="jxr_linenumber" name="L9335" href="#L9335">9335</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap(null, "1")          = 
null</em>
-<a class="jxr_linenumber" name="L9336" href="#L9336">9336</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("a", "a")           = 
"a"</em>
-<a class="jxr_linenumber" name="L9337" href="#L9337">9337</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("aa", "a")          = 
""</em>
-<a class="jxr_linenumber" name="L9338" href="#L9338">9338</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("\'abc\'", "\'")    = 
"abc"</em>
-<a class="jxr_linenumber" name="L9339" href="#L9339">9339</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("\&quot;abc\&quot;", 
"\&quot;")    = "abc"</em>
-<a class="jxr_linenumber" name="L9340" href="#L9340">9340</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("AABabcBAA", "AA")  = 
"BabcB"</em>
-<a class="jxr_linenumber" name="L9341" href="#L9341">9341</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("A", "#")           = 
"A"</em>
-<a class="jxr_linenumber" name="L9342" href="#L9342">9342</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("#A", "#")          = 
"#A"</em>
-<a class="jxr_linenumber" name="L9343" href="#L9343">9343</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("A#", "#")          = 
"A#"</em>
-<a class="jxr_linenumber" name="L9344" href="#L9344">9344</a> <em 
class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
-<a class="jxr_linenumber" name="L9345" href="#L9345">9345</a> <em 
class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="L9346" href="#L9346">9346</a> <em 
class="jxr_javadoccomment">     * @param str</em>
-<a class="jxr_linenumber" name="L9347" href="#L9347">9347</a> <em 
class="jxr_javadoccomment">     *          the String to be unwrapped, can be 
null</em>
-<a class="jxr_linenumber" name="L9348" href="#L9348">9348</a> <em 
class="jxr_javadoccomment">     * @param wrapToken</em>
-<a class="jxr_linenumber" name="L9349" href="#L9349">9349</a> <em 
class="jxr_javadoccomment">     *          the String used to unwrap</em>
-<a class="jxr_linenumber" name="L9350" href="#L9350">9350</a> <em 
class="jxr_javadoccomment">     * @return unwrapped String or the original 
string</em>
-<a class="jxr_linenumber" name="L9351" href="#L9351">9351</a> <em 
class="jxr_javadoccomment">     *          if it is not quoted properly with 
the wrapToken</em>
-<a class="jxr_linenumber" name="L9352" href="#L9352">9352</a> <em 
class="jxr_javadoccomment">     * @since 3.6</em>
-<a class="jxr_linenumber" name="L9353" href="#L9353">9353</a> <em 
class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="L9354" href="#L9354">9354</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String unwrap(<strong class="jxr_keyword">final</strong> String str, <strong 
class="jxr_keyword">final</strong> String wrapToken) {
-<a class="jxr_linenumber" name="L9355" href="#L9355">9355</a>         <strong 
class="jxr_keyword">if</strong> (isEmpty(str) || isEmpty(wrapToken) || 
str.length() &lt; 2 * wrapToken.length()) {
-<a class="jxr_linenumber" name="L9356" href="#L9356">9356</a>             
<strong class="jxr_keyword">return</strong> str;
-<a class="jxr_linenumber" name="L9357" href="#L9357">9357</a>         }
-<a class="jxr_linenumber" name="L9358" href="#L9358">9358</a> 
-<a class="jxr_linenumber" name="L9359" href="#L9359">9359</a>         <strong 
class="jxr_keyword">if</strong> (startsWith(str, wrapToken) &amp;&amp; 
endsWith(str, wrapToken)) {
-<a class="jxr_linenumber" name="L9360" href="#L9360">9360</a>             
<strong class="jxr_keyword">return</strong> str.substring(wrapToken.length(), 
str.lastIndexOf(wrapToken));
-<a class="jxr_linenumber" name="L9361" href="#L9361">9361</a>         }
-<a class="jxr_linenumber" name="L9362" href="#L9362">9362</a> 
-<a class="jxr_linenumber" name="L9363" href="#L9363">9363</a>         <strong 
class="jxr_keyword">return</strong> str;
-<a class="jxr_linenumber" name="L9364" href="#L9364">9364</a>     }
-<a class="jxr_linenumber" name="L9365" href="#L9365">9365</a> 
-<a class="jxr_linenumber" name="L9366" href="#L9366">9366</a>     <em 
class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L9367" href="#L9367">9367</a> <em 
class="jxr_javadoccomment">     * Converts a String to upper case as per {@link 
String#toUpperCase()}.</em>
+<a class="jxr_linenumber" name="L9179" href="#L9179">9179</a> <em 
class="jxr_javadoccomment">     *   &lt;li&gt;In no case will it return a 
String of length greater than</em>
+<a class="jxr_linenumber" name="L9180" href="#L9180">9180</a> <em 
class="jxr_javadoccomment">     *       {@code maxWidth}.&lt;/li&gt;</em>
+<a class="jxr_linenumber" name="L9181" href="#L9181">9181</a> <em 
class="jxr_javadoccomment">     * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="L9182" href="#L9182">9182</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9183" href="#L9183">9183</a> <em 
class="jxr_javadoccomment">     * &lt;pre&gt;</em>
+<a class="jxr_linenumber" name="L9184" href="#L9184">9184</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate(null, 0, 0) = null</em>
+<a class="jxr_linenumber" name="L9185" href="#L9185">9185</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate(null, 2, 4) = null</em>
+<a class="jxr_linenumber" name="L9186" href="#L9186">9186</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("", 0, 10) = ""</em>
+<a class="jxr_linenumber" name="L9187" href="#L9187">9187</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("", 2, 10) = ""</em>
+<a class="jxr_linenumber" name="L9188" href="#L9188">9188</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghij", 0, 3) = 
"abc"</em>
+<a class="jxr_linenumber" name="L9189" href="#L9189">9189</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghij", 5, 6) = 
"fghij"</em>
+<a class="jxr_linenumber" name="L9190" href="#L9190">9190</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("raspberry peach", 10, 
15) = "peach"</em>
+<a class="jxr_linenumber" name="L9191" href="#L9191">9191</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 0, 
10) = "abcdefghij"</em>
+<a class="jxr_linenumber" name="L9192" href="#L9192">9192</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", -1, 
10) = throws an IllegalArgumentException</em>
+<a class="jxr_linenumber" name="L9193" href="#L9193">9193</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 
Integer.MIN_VALUE, 10) = throws an IllegalArgumentException</em>
+<a class="jxr_linenumber" name="L9194" href="#L9194">9194</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 
Integer.MIN_VALUE, Integer.MAX_VALUE) = throws an IllegalArgumentException</em>
+<a class="jxr_linenumber" name="L9195" href="#L9195">9195</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 0, 
Integer.MAX_VALUE) = "abcdefghijklmno"</em>
+<a class="jxr_linenumber" name="L9196" href="#L9196">9196</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 1, 
10) = "bcdefghijk"</em>
+<a class="jxr_linenumber" name="L9197" href="#L9197">9197</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 2, 
10) = "cdefghijkl"</em>
+<a class="jxr_linenumber" name="L9198" href="#L9198">9198</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 3, 
10) = "defghijklm"</em>
+<a class="jxr_linenumber" name="L9199" href="#L9199">9199</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 4, 
10) = "efghijklmn"</em>
+<a class="jxr_linenumber" name="L9200" href="#L9200">9200</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 5, 
10) = "fghijklmno"</em>
+<a class="jxr_linenumber" name="L9201" href="#L9201">9201</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 5, 5) 
= "fghij"</em>
+<a class="jxr_linenumber" name="L9202" href="#L9202">9202</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 5, 3) 
= "fgh"</em>
+<a class="jxr_linenumber" name="L9203" href="#L9203">9203</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 10, 
3) = "klm"</em>
+<a class="jxr_linenumber" name="L9204" href="#L9204">9204</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 10, 
Integer.MAX_VALUE) = "klmno"</em>
+<a class="jxr_linenumber" name="L9205" href="#L9205">9205</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 13, 
1) = "n"</em>
+<a class="jxr_linenumber" name="L9206" href="#L9206">9206</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 13, 
Integer.MAX_VALUE) = "no"</em>
+<a class="jxr_linenumber" name="L9207" href="#L9207">9207</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 14, 
1) = "o"</em>
+<a class="jxr_linenumber" name="L9208" href="#L9208">9208</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 14, 
Integer.MAX_VALUE) = "o"</em>
+<a class="jxr_linenumber" name="L9209" href="#L9209">9209</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 15, 
1) = ""</em>
+<a class="jxr_linenumber" name="L9210" href="#L9210">9210</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 15, 
Integer.MAX_VALUE) = ""</em>
+<a class="jxr_linenumber" name="L9211" href="#L9211">9211</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghijklmno", 
Integer.MAX_VALUE, Integer.MAX_VALUE) = ""</em>
+<a class="jxr_linenumber" name="L9212" href="#L9212">9212</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghij", 3, -1) = 
throws an IllegalArgumentException</em>
+<a class="jxr_linenumber" name="L9213" href="#L9213">9213</a> <em 
class="jxr_javadoccomment">     * StringUtils.truncate("abcdefghij", -2, 4) = 
throws an IllegalArgumentException</em>
+<a class="jxr_linenumber" name="L9214" href="#L9214">9214</a> <em 
class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
+<a class="jxr_linenumber" name="L9215" href="#L9215">9215</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9216" href="#L9216">9216</a> <em 
class="jxr_javadoccomment">     * @param str  the String to truncate, may be 
null</em>
+<a class="jxr_linenumber" name="L9217" href="#L9217">9217</a> <em 
class="jxr_javadoccomment">     * @param offset  left edge of source String</em>
+<a class="jxr_linenumber" name="L9218" href="#L9218">9218</a> <em 
class="jxr_javadoccomment">     * @param maxWidth  maximum length of result 
String, must be positive</em>
+<a class="jxr_linenumber" name="L9219" href="#L9219">9219</a> <em 
class="jxr_javadoccomment">     * @return truncated String, {@code null} if 
null String input</em>
+<a class="jxr_linenumber" name="L9220" href="#L9220">9220</a> <em 
class="jxr_javadoccomment">     * @throws IllegalArgumentException If {@code 
offset} or {@code maxWidth} is less than {@code 0}</em>
+<a class="jxr_linenumber" name="L9221" href="#L9221">9221</a> <em 
class="jxr_javadoccomment">     * @since 3.5</em>
+<a class="jxr_linenumber" name="L9222" href="#L9222">9222</a> <em 
class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L9223" href="#L9223">9223</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String truncate(<strong class="jxr_keyword">final</strong> String str, <strong 
class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> 
offset, <strong class="jxr_keyword">final</strong> <strong 
class="jxr_keyword">int</strong> maxWidth) {
+<a class="jxr_linenumber" name="L9224" href="#L9224">9224</a>         <strong 
class="jxr_keyword">if</strong> (offset &lt; 0) {
+<a class="jxr_linenumber" name="L9225" href="#L9225">9225</a>             
<strong class="jxr_keyword">throw</strong> <strong 
class="jxr_keyword">new</strong> IllegalArgumentException(<span 
class="jxr_string">"offset cannot be negative"</span>);
+<a class="jxr_linenumber" name="L9226" href="#L9226">9226</a>         }
+<a class="jxr_linenumber" name="L9227" href="#L9227">9227</a>         <strong 
class="jxr_keyword">if</strong> (maxWidth &lt; 0) {
+<a class="jxr_linenumber" name="L9228" href="#L9228">9228</a>             
<strong class="jxr_keyword">throw</strong> <strong 
class="jxr_keyword">new</strong> IllegalArgumentException(<span 
class="jxr_string">"maxWith cannot be negative"</span>);
+<a class="jxr_linenumber" name="L9229" href="#L9229">9229</a>         }
+<a class="jxr_linenumber" name="L9230" href="#L9230">9230</a>         <strong 
class="jxr_keyword">if</strong> (str == <strong 
class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L9231" href="#L9231">9231</a>             
<strong class="jxr_keyword">return</strong> <strong 
class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L9232" href="#L9232">9232</a>         }
+<a class="jxr_linenumber" name="L9233" href="#L9233">9233</a>         <strong 
class="jxr_keyword">if</strong> (offset &gt; str.length()) {
+<a class="jxr_linenumber" name="L9234" href="#L9234">9234</a>             
<strong class="jxr_keyword">return</strong> EMPTY;
+<a class="jxr_linenumber" name="L9235" href="#L9235">9235</a>         }
+<a class="jxr_linenumber" name="L9236" href="#L9236">9236</a>         <strong 
class="jxr_keyword">if</strong> (str.length() &gt; maxWidth) {
+<a class="jxr_linenumber" name="L9237" href="#L9237">9237</a>             
<strong class="jxr_keyword">final</strong> <strong 
class="jxr_keyword">int</strong> ix = Math.min(offset + maxWidth, str.length());
+<a class="jxr_linenumber" name="L9238" href="#L9238">9238</a>             
<strong class="jxr_keyword">return</strong> str.substring(offset, ix);
+<a class="jxr_linenumber" name="L9239" href="#L9239">9239</a>         }
+<a class="jxr_linenumber" name="L9240" href="#L9240">9240</a>         <strong 
class="jxr_keyword">return</strong> str.substring(offset);
+<a class="jxr_linenumber" name="L9241" href="#L9241">9241</a>     }
+<a class="jxr_linenumber" name="L9242" href="#L9242">9242</a> 
+<a class="jxr_linenumber" name="L9243" href="#L9243">9243</a>     <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L9244" href="#L9244">9244</a> <em 
class="jxr_javadoccomment">     * Uncapitalizes a String, changing the first 
character to lower case as</em>
+<a class="jxr_linenumber" name="L9245" href="#L9245">9245</a> <em 
class="jxr_javadoccomment">     * per {@link Character#toLowerCase(int)}. No 
other characters are changed.</em>
+<a class="jxr_linenumber" name="L9246" href="#L9246">9246</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9247" href="#L9247">9247</a> <em 
class="jxr_javadoccomment">     * &lt;p&gt;For a word based algorithm, see 
{@link org.apache.commons.text.WordUtils#uncapitalize(String)}.</em>
+<a class="jxr_linenumber" name="L9248" href="#L9248">9248</a> <em 
class="jxr_javadoccomment">     * A {@code null} input String returns {@code 
null}.&lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L9249" href="#L9249">9249</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9250" href="#L9250">9250</a> <em 
class="jxr_javadoccomment">     * &lt;pre&gt;</em>
+<a class="jxr_linenumber" name="L9251" href="#L9251">9251</a> <em 
class="jxr_javadoccomment">     * StringUtils.uncapitalize(null)  = null</em>
+<a class="jxr_linenumber" name="L9252" href="#L9252">9252</a> <em 
class="jxr_javadoccomment">     * StringUtils.uncapitalize("")    = ""</em>
+<a class="jxr_linenumber" name="L9253" href="#L9253">9253</a> <em 
class="jxr_javadoccomment">     * StringUtils.uncapitalize("cat") = "cat"</em>
+<a class="jxr_linenumber" name="L9254" href="#L9254">9254</a> <em 
class="jxr_javadoccomment">     * StringUtils.uncapitalize("Cat") = "cat"</em>
+<a class="jxr_linenumber" name="L9255" href="#L9255">9255</a> <em 
class="jxr_javadoccomment">     * StringUtils.uncapitalize("CAT") = "cAT"</em>
+<a class="jxr_linenumber" name="L9256" href="#L9256">9256</a> <em 
class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
+<a class="jxr_linenumber" name="L9257" href="#L9257">9257</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9258" href="#L9258">9258</a> <em 
class="jxr_javadoccomment">     * @param str the String to uncapitalize, may be 
null</em>
+<a class="jxr_linenumber" name="L9259" href="#L9259">9259</a> <em 
class="jxr_javadoccomment">     * @return the uncapitalized String, {@code 
null} if null String input</em>
+<a class="jxr_linenumber" name="L9260" href="#L9260">9260</a> <em 
class="jxr_javadoccomment">     * @see 
org.apache.commons.text.WordUtils#uncapitalize(String)</em>
+<a class="jxr_linenumber" name="L9261" href="#L9261">9261</a> <em 
class="jxr_javadoccomment">     * @see #capitalize(String)</em>
+<a class="jxr_linenumber" name="L9262" href="#L9262">9262</a> <em 
class="jxr_javadoccomment">     * @since 2.0</em>
+<a class="jxr_linenumber" name="L9263" href="#L9263">9263</a> <em 
class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L9264" href="#L9264">9264</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String uncapitalize(<strong class="jxr_keyword">final</strong> String str) {
+<a class="jxr_linenumber" name="L9265" href="#L9265">9265</a>         <strong 
class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> 
strLen = length(str);
+<a class="jxr_linenumber" name="L9266" href="#L9266">9266</a>         <strong 
class="jxr_keyword">if</strong> (strLen == 0) {
+<a class="jxr_linenumber" name="L9267" href="#L9267">9267</a>             
<strong class="jxr_keyword">return</strong> str;
+<a class="jxr_linenumber" name="L9268" href="#L9268">9268</a>         }
+<a class="jxr_linenumber" name="L9269" href="#L9269">9269</a> 
+<a class="jxr_linenumber" name="L9270" href="#L9270">9270</a>         <strong 
class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> 
firstCodePoint = str.codePointAt(0);
+<a class="jxr_linenumber" name="L9271" href="#L9271">9271</a>         <strong 
class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> 
newCodePoint = Character.toLowerCase(firstCodePoint);
+<a class="jxr_linenumber" name="L9272" href="#L9272">9272</a>         <strong 
class="jxr_keyword">if</strong> (firstCodePoint == newCodePoint) {
+<a class="jxr_linenumber" name="L9273" href="#L9273">9273</a>             <em 
class="jxr_comment">// already capitalized</em>
+<a class="jxr_linenumber" name="L9274" href="#L9274">9274</a>             
<strong class="jxr_keyword">return</strong> str;
+<a class="jxr_linenumber" name="L9275" href="#L9275">9275</a>         }
+<a class="jxr_linenumber" name="L9276" href="#L9276">9276</a> 
+<a class="jxr_linenumber" name="L9277" href="#L9277">9277</a>         <strong 
class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong>[] 
newCodePoints = <strong class="jxr_keyword">new</strong> <strong 
class="jxr_keyword">int</strong>[strLen]; <em class="jxr_comment">// cannot be 
longer than the char array</em>
+<a class="jxr_linenumber" name="L9278" href="#L9278">9278</a>         <strong 
class="jxr_keyword">int</strong> outOffset = 0;
+<a class="jxr_linenumber" name="L9279" href="#L9279">9279</a>         
newCodePoints[outOffset++] = newCodePoint; <em class="jxr_comment">// copy the 
first code point</em>
+<a class="jxr_linenumber" name="L9280" href="#L9280">9280</a>         <strong 
class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> 
inOffset = Character.charCount(firstCodePoint); inOffset &lt; strLen; ) {
+<a class="jxr_linenumber" name="L9281" href="#L9281">9281</a>             
<strong class="jxr_keyword">final</strong> <strong 
class="jxr_keyword">int</strong> codePoint = str.codePointAt(inOffset);
+<a class="jxr_linenumber" name="L9282" href="#L9282">9282</a>             
newCodePoints[outOffset++] = codePoint; <em class="jxr_comment">// copy the 
remaining ones</em>
+<a class="jxr_linenumber" name="L9283" href="#L9283">9283</a>             
inOffset += Character.charCount(codePoint);
+<a class="jxr_linenumber" name="L9284" href="#L9284">9284</a>          }
+<a class="jxr_linenumber" name="L9285" href="#L9285">9285</a>         <strong 
class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> 
String(newCodePoints, 0, outOffset);
+<a class="jxr_linenumber" name="L9286" href="#L9286">9286</a>     }
+<a class="jxr_linenumber" name="L9287" href="#L9287">9287</a> 
+<a class="jxr_linenumber" name="L9288" href="#L9288">9288</a>     <em 
class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L9289" href="#L9289">9289</a> <em 
class="jxr_javadoccomment">     * Unwraps a given string from a character.</em>
+<a class="jxr_linenumber" name="L9290" href="#L9290">9290</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9291" href="#L9291">9291</a> <em 
class="jxr_javadoccomment">     * &lt;pre&gt;</em>
+<a class="jxr_linenumber" name="L9292" href="#L9292">9292</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap(null, null)         = 
null</em>
+<a class="jxr_linenumber" name="L9293" href="#L9293">9293</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap(null, '\0')         = 
null</em>
+<a class="jxr_linenumber" name="L9294" href="#L9294">9294</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap(null, '1')          = 
null</em>
+<a class="jxr_linenumber" name="L9295" href="#L9295">9295</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("a", 'a')           = 
"a"</em>
+<a class="jxr_linenumber" name="L9296" href="#L9296">9296</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("aa", 'a')           = 
""</em>
+<a class="jxr_linenumber" name="L9297" href="#L9297">9297</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("\'abc\'", '\'')    = 
"abc"</em>
+<a class="jxr_linenumber" name="L9298" href="#L9298">9298</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("AABabcBAA", 'A')   = 
"ABabcBA"</em>
+<a class="jxr_linenumber" name="L9299" href="#L9299">9299</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("A", '#')           = 
"A"</em>
+<a class="jxr_linenumber" name="L9300" href="#L9300">9300</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("#A", '#')          = 
"#A"</em>
+<a class="jxr_linenumber" name="L9301" href="#L9301">9301</a> <em 
class="jxr_javadoccomment">     * StringUtils.unwrap("A#", '#')          = 
"A#"</em>
+<a class="jxr_linenumber" name="L9302" href="#L9302">9302</a> <em 
class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
+<a class="jxr_linenumber" name="L9303" href="#L9303">9303</a> <em 
class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L9304" href="#L9304">9304</a> <em 
class="jxr_javadoccomment">     * @param str</em>
+<a class="jxr_linenumber" name="L9305" href="#L9305">9305</a> <em 
class="jxr_javadoccomment">     *          the String to be unwrapped, can be 
null</em>
+<a class="jxr_linenumber" name="L9306" href="#L9306">9306</a> <em 
class="jxr_javadoccomment">     * @param wrapChar</em>
+<a class="jxr_linenumber" name="L9307" href="#L9307">9307</a> <em 
class="jxr_javadoccomment">     *          the character used to unwrap</em>
+<a class="jxr_linenumber" name="L9308" href="#L9308">9308</a> <em 
class="jxr_javadoccomment">     * @return unwrapped String or the original 
string</em>
+<a class="jxr_linenumber" name="L9309" href="#L9309">9309</a> <em 
class="jxr_javadoccomment">     *          if it is not quoted properly with 
the wrapChar</em>
+<a class="jxr_linenumber" name="L9310" href="#L9310">9310</a> <em 
class="jxr_javadoccomment">     * @since 3.6</em>
+<a class="jxr_linenumber" name="L9311" href="#L9311">9311</a> <em 
class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L9312" href="#L9312">9312</a>     <strong 
class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> 
String unwrap(<strong class="jxr_keyword">final</strong> String str, <strong 
class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong> 
wrapChar) {
+<a class="jxr_linenumber" name="L9313" href="#L9313">9313</a>         <strong 
class="jxr_keyword">if</strong> (isEmpty(str) || wrapChar == CharUtils.NUL || 
str.length() == 1) {
+<a class="jxr_linenumber" name="L9314" href="#L9314">9314</a>             
<strong class="jxr_keyword">return</strong> str;
+<a class="jxr_linenumber" name="L9315" href="#L9315">9315</a>         }
+<a class="jxr_linenumber" name="L9316" href="#L9316">9316</a> 
+<a class="jxr_linenumber" name="L9317" href="#L9317">9317</a>         <strong 
class="jxr_keyword">if</strong> (str.charAt(0) == wrapChar &amp;&amp; 
str.charAt(str.length() - 1) == wrapChar) {
+<a class="jxr_linenumber" name="L9318" href="#L9318">9318</a>             
<strong class="jxr_keyword">final</strong> <strong 
class="jxr_keyword">int</strong> startIndex = 0;
+<a class="jxr_linenumber" name="L9319" href="#L9319">9319</a>             
<strong class="jxr_keyword">final</strong> <strong 
class="jxr_keyword">int</strong> endIndex = str.length() - 1;

[... 518 lines stripped ...]


Reply via email to