Modified: 
websites/production/commons/content/proper/commons-lang/apidocs/src-html/org/apache/commons/lang3/StringUtils.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-lang/apidocs/src-html/org/apache/commons/lang3/StringUtils.html
 (original)
+++ 
websites/production/commons/content/proper/commons-lang/apidocs/src-html/org/apache/commons/lang3/StringUtils.html
 Thu Aug 29 19:59:17 2024
@@ -9044,576 +9044,574 @@
 <span class="source-line-no">9031</span><span id="line-9031">     * @param 
charsetName</span>
 <span class="source-line-no">9032</span><span id="line-9032">     *            
the encoding to use, if null then use the platform default</span>
 <span class="source-line-no">9033</span><span id="line-9033">     * @return a 
new String</span>
-<span class="source-line-no">9034</span><span id="line-9034">     * @throws 
UnsupportedEncodingException</span>
-<span class="source-line-no">9035</span><span id="line-9035">     *            
 Never thrown</span>
-<span class="source-line-no">9036</span><span id="line-9036">     * @throws 
NullPointerException</span>
-<span class="source-line-no">9037</span><span id="line-9037">     *            
 if the input is null</span>
-<span class="source-line-no">9038</span><span id="line-9038">     * 
@deprecated use {@link StringUtils#toEncodedString(byte[], Charset)} instead of 
String constants in your code</span>
-<span class="source-line-no">9039</span><span id="line-9039">     * @since 
3.1</span>
-<span class="source-line-no">9040</span><span id="line-9040">     */</span>
-<span class="source-line-no">9041</span><span id="line-9041">    
@Deprecated</span>
-<span class="source-line-no">9042</span><span id="line-9042">    public static 
String toString(final byte[] bytes, final String charsetName) throws 
UnsupportedEncodingException {</span>
-<span class="source-line-no">9043</span><span id="line-9043">        return 
new String(bytes, Charsets.toCharset(charsetName));</span>
-<span class="source-line-no">9044</span><span id="line-9044">    }</span>
-<span class="source-line-no">9045</span><span id="line-9045"></span>
-<span class="source-line-no">9046</span><span id="line-9046">    private 
static String toStringOrEmpty(final Object obj) {</span>
-<span class="source-line-no">9047</span><span id="line-9047">        return 
Objects.toString(obj, EMPTY);</span>
-<span class="source-line-no">9048</span><span id="line-9048">    }</span>
-<span class="source-line-no">9049</span><span id="line-9049"></span>
-<span class="source-line-no">9050</span><span id="line-9050">    /**</span>
-<span class="source-line-no">9051</span><span id="line-9051">     * Removes 
control characters (char &amp;lt;= 32) from both</span>
-<span class="source-line-no">9052</span><span id="line-9052">     * ends of 
this String, handling {@code null} by returning</span>
-<span class="source-line-no">9053</span><span id="line-9053">     * {@code 
null}.</span>
-<span class="source-line-no">9054</span><span id="line-9054">     *</span>
-<span class="source-line-no">9055</span><span id="line-9055">     * 
&lt;p&gt;The String is trimmed using {@link String#trim()}.</span>
-<span class="source-line-no">9056</span><span id="line-9056">     * Trim 
removes start and end characters &amp;lt;= 32.</span>
-<span class="source-line-no">9057</span><span id="line-9057">     * To strip 
whitespace use {@link #strip(String)}.&lt;/p&gt;</span>
-<span class="source-line-no">9058</span><span id="line-9058">     *</span>
-<span class="source-line-no">9059</span><span id="line-9059">     * 
&lt;p&gt;To trim your choice of characters, use the</span>
-<span class="source-line-no">9060</span><span id="line-9060">     * {@link 
#strip(String, String)} methods.&lt;/p&gt;</span>
-<span class="source-line-no">9061</span><span id="line-9061">     *</span>
-<span class="source-line-no">9062</span><span id="line-9062">     * 
&lt;pre&gt;</span>
-<span class="source-line-no">9063</span><span id="line-9063">     * 
StringUtils.trim(null)          = null</span>
-<span class="source-line-no">9064</span><span id="line-9064">     * 
StringUtils.trim("")            = ""</span>
-<span class="source-line-no">9065</span><span id="line-9065">     * 
StringUtils.trim("     ")       = ""</span>
-<span class="source-line-no">9066</span><span id="line-9066">     * 
StringUtils.trim("abc")         = "abc"</span>
-<span class="source-line-no">9067</span><span id="line-9067">     * 
StringUtils.trim("    abc    ") = "abc"</span>
-<span class="source-line-no">9068</span><span id="line-9068">     * 
&lt;/pre&gt;</span>
-<span class="source-line-no">9069</span><span id="line-9069">     *</span>
-<span class="source-line-no">9070</span><span id="line-9070">     * @param str 
 the String to be trimmed, may be null</span>
-<span class="source-line-no">9071</span><span id="line-9071">     * @return 
the trimmed string, {@code null} if null String input</span>
-<span class="source-line-no">9072</span><span id="line-9072">     */</span>
-<span class="source-line-no">9073</span><span id="line-9073">    public static 
String trim(final String str) {</span>
-<span class="source-line-no">9074</span><span id="line-9074">        return 
str == null ? null : str.trim();</span>
-<span class="source-line-no">9075</span><span id="line-9075">    }</span>
-<span class="source-line-no">9076</span><span id="line-9076"></span>
-<span class="source-line-no">9077</span><span id="line-9077">    /**</span>
-<span class="source-line-no">9078</span><span id="line-9078">     * Removes 
control characters (char &amp;lt;= 32) from both</span>
-<span class="source-line-no">9079</span><span id="line-9079">     * ends of 
this String returning an empty String ("") if the String</span>
-<span class="source-line-no">9080</span><span id="line-9080">     * is empty 
("") after the trim or if it is {@code null}.</span>
-<span class="source-line-no">9081</span><span id="line-9081">     *</span>
-<span class="source-line-no">9082</span><span id="line-9082">     * 
&lt;p&gt;The String is trimmed using {@link String#trim()}.</span>
-<span class="source-line-no">9083</span><span id="line-9083">     * Trim 
removes start and end characters &amp;lt;= 32.</span>
-<span class="source-line-no">9084</span><span id="line-9084">     * To strip 
whitespace use {@link #stripToEmpty(String)}.</span>
-<span class="source-line-no">9085</span><span id="line-9085">     *</span>
-<span class="source-line-no">9086</span><span id="line-9086">     * 
&lt;pre&gt;</span>
-<span class="source-line-no">9087</span><span id="line-9087">     * 
StringUtils.trimToEmpty(null)          = ""</span>
-<span class="source-line-no">9088</span><span id="line-9088">     * 
StringUtils.trimToEmpty("")            = ""</span>
-<span class="source-line-no">9089</span><span id="line-9089">     * 
StringUtils.trimToEmpty("     ")       = ""</span>
-<span class="source-line-no">9090</span><span id="line-9090">     * 
StringUtils.trimToEmpty("abc")         = "abc"</span>
-<span class="source-line-no">9091</span><span id="line-9091">     * 
StringUtils.trimToEmpty("    abc    ") = "abc"</span>
-<span class="source-line-no">9092</span><span id="line-9092">     * 
&lt;/pre&gt;</span>
-<span class="source-line-no">9093</span><span id="line-9093">     *</span>
-<span class="source-line-no">9094</span><span id="line-9094">     * @param str 
 the String to be trimmed, may be null</span>
-<span class="source-line-no">9095</span><span id="line-9095">     * @return 
the trimmed String, or an empty String if {@code null} input</span>
-<span class="source-line-no">9096</span><span id="line-9096">     * @since 
2.0</span>
-<span class="source-line-no">9097</span><span id="line-9097">     */</span>
-<span class="source-line-no">9098</span><span id="line-9098">    public static 
String trimToEmpty(final String str) {</span>
-<span class="source-line-no">9099</span><span id="line-9099">        return 
str == null ? EMPTY : str.trim();</span>
-<span class="source-line-no">9100</span><span id="line-9100">    }</span>
-<span class="source-line-no">9101</span><span id="line-9101"></span>
-<span class="source-line-no">9102</span><span id="line-9102">    /**</span>
-<span class="source-line-no">9103</span><span id="line-9103">     * Removes 
control characters (char &amp;lt;= 32) from both</span>
-<span class="source-line-no">9104</span><span id="line-9104">     * ends of 
this String returning {@code null} if the String is</span>
-<span class="source-line-no">9105</span><span id="line-9105">     * empty ("") 
after the trim or if it is {@code null}.</span>
-<span class="source-line-no">9106</span><span id="line-9106">     *</span>
-<span class="source-line-no">9107</span><span id="line-9107">     * 
&lt;p&gt;The String is trimmed using {@link String#trim()}.</span>
-<span class="source-line-no">9108</span><span id="line-9108">     * Trim 
removes start and end characters &amp;lt;= 32.</span>
-<span class="source-line-no">9109</span><span id="line-9109">     * To strip 
whitespace use {@link #stripToNull(String)}.</span>
-<span class="source-line-no">9110</span><span id="line-9110">     *</span>
-<span class="source-line-no">9111</span><span id="line-9111">     * 
&lt;pre&gt;</span>
-<span class="source-line-no">9112</span><span id="line-9112">     * 
StringUtils.trimToNull(null)          = null</span>
-<span class="source-line-no">9113</span><span id="line-9113">     * 
StringUtils.trimToNull("")            = null</span>
-<span class="source-line-no">9114</span><span id="line-9114">     * 
StringUtils.trimToNull("     ")       = null</span>
-<span class="source-line-no">9115</span><span id="line-9115">     * 
StringUtils.trimToNull("abc")         = "abc"</span>
-<span class="source-line-no">9116</span><span id="line-9116">     * 
StringUtils.trimToNull("    abc    ") = "abc"</span>
-<span class="source-line-no">9117</span><span id="line-9117">     * 
&lt;/pre&gt;</span>
-<span class="source-line-no">9118</span><span id="line-9118">     *</span>
-<span class="source-line-no">9119</span><span id="line-9119">     * @param str 
 the String to be trimmed, may be null</span>
-<span class="source-line-no">9120</span><span id="line-9120">     * @return 
the trimmed String,</span>
-<span class="source-line-no">9121</span><span id="line-9121">     *  {@code 
null} if only chars &amp;lt;= 32, empty or null String input</span>
-<span class="source-line-no">9122</span><span id="line-9122">     * @since 
2.0</span>
-<span class="source-line-no">9123</span><span id="line-9123">     */</span>
-<span class="source-line-no">9124</span><span id="line-9124">    public static 
String trimToNull(final String str) {</span>
-<span class="source-line-no">9125</span><span id="line-9125">        final 
String ts = trim(str);</span>
-<span class="source-line-no">9126</span><span id="line-9126">        return 
isEmpty(ts) ? null : ts;</span>
-<span class="source-line-no">9127</span><span id="line-9127">    }</span>
-<span class="source-line-no">9128</span><span id="line-9128"></span>
-<span class="source-line-no">9129</span><span id="line-9129">    /**</span>
-<span class="source-line-no">9130</span><span id="line-9130">     * Truncates 
a String. This will turn</span>
-<span class="source-line-no">9131</span><span id="line-9131">     * "Now is 
the time for all good men" into "Now is the time for".</span>
-<span class="source-line-no">9132</span><span id="line-9132">     *</span>
-<span class="source-line-no">9133</span><span id="line-9133">     * 
&lt;p&gt;Specifically:&lt;/p&gt;</span>
-<span class="source-line-no">9134</span><span id="line-9134">     * 
&lt;ul&gt;</span>
-<span class="source-line-no">9135</span><span id="line-9135">     *   
&lt;li&gt;If {@code str} is less than {@code maxWidth} characters</span>
-<span class="source-line-no">9136</span><span id="line-9136">     *       
long, return it.&lt;/li&gt;</span>
-<span class="source-line-no">9137</span><span id="line-9137">     *   
&lt;li&gt;Else truncate it to {@code substring(str, 0, 
maxWidth)}.&lt;/li&gt;</span>
-<span class="source-line-no">9138</span><span id="line-9138">     *   
&lt;li&gt;If {@code maxWidth} is less than {@code 0}, throw an</span>
-<span class="source-line-no">9139</span><span id="line-9139">     *       
{@link IllegalArgumentException}.&lt;/li&gt;</span>
-<span class="source-line-no">9140</span><span id="line-9140">     *   
&lt;li&gt;In no case will it return a String of length greater than</span>
-<span class="source-line-no">9141</span><span id="line-9141">     *       
{@code maxWidth}.&lt;/li&gt;</span>
-<span class="source-line-no">9142</span><span id="line-9142">     * 
&lt;/ul&gt;</span>
-<span class="source-line-no">9143</span><span id="line-9143">     *</span>
-<span class="source-line-no">9144</span><span id="line-9144">     * 
&lt;pre&gt;</span>
-<span class="source-line-no">9145</span><span id="line-9145">     * 
StringUtils.truncate(null, 0)       = null</span>
-<span class="source-line-no">9146</span><span id="line-9146">     * 
StringUtils.truncate(null, 2)       = null</span>
-<span class="source-line-no">9147</span><span id="line-9147">     * 
StringUtils.truncate("", 4)         = ""</span>
-<span class="source-line-no">9148</span><span id="line-9148">     * 
StringUtils.truncate("abcdefg", 4)  = "abcd"</span>
-<span class="source-line-no">9149</span><span id="line-9149">     * 
StringUtils.truncate("abcdefg", 6)  = "abcdef"</span>
-<span class="source-line-no">9150</span><span id="line-9150">     * 
StringUtils.truncate("abcdefg", 7)  = "abcdefg"</span>
-<span class="source-line-no">9151</span><span id="line-9151">     * 
StringUtils.truncate("abcdefg", 8)  = "abcdefg"</span>
-<span class="source-line-no">9152</span><span id="line-9152">     * 
StringUtils.truncate("abcdefg", -1) = throws an IllegalArgumentException</span>
-<span class="source-line-no">9153</span><span id="line-9153">     * 
&lt;/pre&gt;</span>
-<span class="source-line-no">9154</span><span id="line-9154">     *</span>
-<span class="source-line-no">9155</span><span id="line-9155">     * @param str 
 the String to truncate, may be null</span>
-<span class="source-line-no">9156</span><span id="line-9156">     * @param 
maxWidth  maximum length of result String, must be positive</span>
-<span class="source-line-no">9157</span><span id="line-9157">     * @return 
truncated String, {@code null} if null String input</span>
-<span class="source-line-no">9158</span><span id="line-9158">     * @throws 
IllegalArgumentException If {@code maxWidth} is less than {@code 0}</span>
-<span class="source-line-no">9159</span><span id="line-9159">     * @since 
3.5</span>
-<span class="source-line-no">9160</span><span id="line-9160">     */</span>
-<span class="source-line-no">9161</span><span id="line-9161">    public static 
String truncate(final String str, final int maxWidth) {</span>
-<span class="source-line-no">9162</span><span id="line-9162">        return 
truncate(str, 0, maxWidth);</span>
-<span class="source-line-no">9163</span><span id="line-9163">    }</span>
-<span class="source-line-no">9164</span><span id="line-9164"></span>
-<span class="source-line-no">9165</span><span id="line-9165">    /**</span>
-<span class="source-line-no">9166</span><span id="line-9166">     * Truncates 
a String. This will turn</span>
-<span class="source-line-no">9167</span><span id="line-9167">     * "Now is 
the time for all good men" into "is the time for all".</span>
-<span class="source-line-no">9168</span><span id="line-9168">     *</span>
-<span class="source-line-no">9169</span><span id="line-9169">     * 
&lt;p&gt;Works like {@code truncate(String, int)}, but allows you to 
specify</span>
-<span class="source-line-no">9170</span><span id="line-9170">     * a "left 
edge" offset.</span>
-<span class="source-line-no">9171</span><span id="line-9171">     *</span>
-<span class="source-line-no">9172</span><span id="line-9172">     * 
&lt;p&gt;Specifically:&lt;/p&gt;</span>
-<span class="source-line-no">9173</span><span id="line-9173">     * 
&lt;ul&gt;</span>
-<span class="source-line-no">9174</span><span id="line-9174">     *   
&lt;li&gt;If {@code str} is less than {@code maxWidth} characters</span>
-<span class="source-line-no">9175</span><span id="line-9175">     *       
long, return it.&lt;/li&gt;</span>
-<span class="source-line-no">9176</span><span id="line-9176">     *   
&lt;li&gt;Else truncate it to {@code substring(str, offset, 
maxWidth)}.&lt;/li&gt;</span>
-<span class="source-line-no">9177</span><span id="line-9177">     *   
&lt;li&gt;If {@code maxWidth} is less than {@code 0}, throw an</span>
+<span class="source-line-no">9034</span><span id="line-9034">     * @throws 
NullPointerException</span>
+<span class="source-line-no">9035</span><span id="line-9035">     *            
 if the input is null</span>
+<span class="source-line-no">9036</span><span id="line-9036">     * 
@deprecated use {@link StringUtils#toEncodedString(byte[], Charset)} instead of 
String constants in your code</span>
+<span class="source-line-no">9037</span><span id="line-9037">     * @since 
3.1</span>
+<span class="source-line-no">9038</span><span id="line-9038">     */</span>
+<span class="source-line-no">9039</span><span id="line-9039">    
@Deprecated</span>
+<span class="source-line-no">9040</span><span id="line-9040">    public static 
String toString(final byte[] bytes, final String charsetName) {</span>
+<span class="source-line-no">9041</span><span id="line-9041">        return 
new String(bytes, Charsets.toCharset(charsetName));</span>
+<span class="source-line-no">9042</span><span id="line-9042">    }</span>
+<span class="source-line-no">9043</span><span id="line-9043"></span>
+<span class="source-line-no">9044</span><span id="line-9044">    private 
static String toStringOrEmpty(final Object obj) {</span>
+<span class="source-line-no">9045</span><span id="line-9045">        return 
Objects.toString(obj, EMPTY);</span>
+<span class="source-line-no">9046</span><span id="line-9046">    }</span>
+<span class="source-line-no">9047</span><span id="line-9047"></span>
+<span class="source-line-no">9048</span><span id="line-9048">    /**</span>
+<span class="source-line-no">9049</span><span id="line-9049">     * Removes 
control characters (char &amp;lt;= 32) from both</span>
+<span class="source-line-no">9050</span><span id="line-9050">     * ends of 
this String, handling {@code null} by returning</span>
+<span class="source-line-no">9051</span><span id="line-9051">     * {@code 
null}.</span>
+<span class="source-line-no">9052</span><span id="line-9052">     *</span>
+<span class="source-line-no">9053</span><span id="line-9053">     * 
&lt;p&gt;The String is trimmed using {@link String#trim()}.</span>
+<span class="source-line-no">9054</span><span id="line-9054">     * Trim 
removes start and end characters &amp;lt;= 32.</span>
+<span class="source-line-no">9055</span><span id="line-9055">     * To strip 
whitespace use {@link #strip(String)}.&lt;/p&gt;</span>
+<span class="source-line-no">9056</span><span id="line-9056">     *</span>
+<span class="source-line-no">9057</span><span id="line-9057">     * 
&lt;p&gt;To trim your choice of characters, use the</span>
+<span class="source-line-no">9058</span><span id="line-9058">     * {@link 
#strip(String, String)} methods.&lt;/p&gt;</span>
+<span class="source-line-no">9059</span><span id="line-9059">     *</span>
+<span class="source-line-no">9060</span><span id="line-9060">     * 
&lt;pre&gt;</span>
+<span class="source-line-no">9061</span><span id="line-9061">     * 
StringUtils.trim(null)          = null</span>
+<span class="source-line-no">9062</span><span id="line-9062">     * 
StringUtils.trim("")            = ""</span>
+<span class="source-line-no">9063</span><span id="line-9063">     * 
StringUtils.trim("     ")       = ""</span>
+<span class="source-line-no">9064</span><span id="line-9064">     * 
StringUtils.trim("abc")         = "abc"</span>
+<span class="source-line-no">9065</span><span id="line-9065">     * 
StringUtils.trim("    abc    ") = "abc"</span>
+<span class="source-line-no">9066</span><span id="line-9066">     * 
&lt;/pre&gt;</span>
+<span class="source-line-no">9067</span><span id="line-9067">     *</span>
+<span class="source-line-no">9068</span><span id="line-9068">     * @param str 
 the String to be trimmed, may be null</span>
+<span class="source-line-no">9069</span><span id="line-9069">     * @return 
the trimmed string, {@code null} if null String input</span>
+<span class="source-line-no">9070</span><span id="line-9070">     */</span>
+<span class="source-line-no">9071</span><span id="line-9071">    public static 
String trim(final String str) {</span>
+<span class="source-line-no">9072</span><span id="line-9072">        return 
str == null ? null : str.trim();</span>
+<span class="source-line-no">9073</span><span id="line-9073">    }</span>
+<span class="source-line-no">9074</span><span id="line-9074"></span>
+<span class="source-line-no">9075</span><span id="line-9075">    /**</span>
+<span class="source-line-no">9076</span><span id="line-9076">     * Removes 
control characters (char &amp;lt;= 32) from both</span>
+<span class="source-line-no">9077</span><span id="line-9077">     * ends of 
this String returning an empty String ("") if the String</span>
+<span class="source-line-no">9078</span><span id="line-9078">     * is empty 
("") after the trim or if it is {@code null}.</span>
+<span class="source-line-no">9079</span><span id="line-9079">     *</span>
+<span class="source-line-no">9080</span><span id="line-9080">     * 
&lt;p&gt;The String is trimmed using {@link String#trim()}.</span>
+<span class="source-line-no">9081</span><span id="line-9081">     * Trim 
removes start and end characters &amp;lt;= 32.</span>
+<span class="source-line-no">9082</span><span id="line-9082">     * To strip 
whitespace use {@link #stripToEmpty(String)}.</span>
+<span class="source-line-no">9083</span><span id="line-9083">     *</span>
+<span class="source-line-no">9084</span><span id="line-9084">     * 
&lt;pre&gt;</span>
+<span class="source-line-no">9085</span><span id="line-9085">     * 
StringUtils.trimToEmpty(null)          = ""</span>
+<span class="source-line-no">9086</span><span id="line-9086">     * 
StringUtils.trimToEmpty("")            = ""</span>
+<span class="source-line-no">9087</span><span id="line-9087">     * 
StringUtils.trimToEmpty("     ")       = ""</span>
+<span class="source-line-no">9088</span><span id="line-9088">     * 
StringUtils.trimToEmpty("abc")         = "abc"</span>
+<span class="source-line-no">9089</span><span id="line-9089">     * 
StringUtils.trimToEmpty("    abc    ") = "abc"</span>
+<span class="source-line-no">9090</span><span id="line-9090">     * 
&lt;/pre&gt;</span>
+<span class="source-line-no">9091</span><span id="line-9091">     *</span>
+<span class="source-line-no">9092</span><span id="line-9092">     * @param str 
 the String to be trimmed, may be null</span>
+<span class="source-line-no">9093</span><span id="line-9093">     * @return 
the trimmed String, or an empty String if {@code null} input</span>
+<span class="source-line-no">9094</span><span id="line-9094">     * @since 
2.0</span>
+<span class="source-line-no">9095</span><span id="line-9095">     */</span>
+<span class="source-line-no">9096</span><span id="line-9096">    public static 
String trimToEmpty(final String str) {</span>
+<span class="source-line-no">9097</span><span id="line-9097">        return 
str == null ? EMPTY : str.trim();</span>
+<span class="source-line-no">9098</span><span id="line-9098">    }</span>
+<span class="source-line-no">9099</span><span id="line-9099"></span>
+<span class="source-line-no">9100</span><span id="line-9100">    /**</span>
+<span class="source-line-no">9101</span><span id="line-9101">     * Removes 
control characters (char &amp;lt;= 32) from both</span>
+<span class="source-line-no">9102</span><span id="line-9102">     * ends of 
this String returning {@code null} if the String is</span>
+<span class="source-line-no">9103</span><span id="line-9103">     * empty ("") 
after the trim or if it is {@code null}.</span>
+<span class="source-line-no">9104</span><span id="line-9104">     *</span>
+<span class="source-line-no">9105</span><span id="line-9105">     * 
&lt;p&gt;The String is trimmed using {@link String#trim()}.</span>
+<span class="source-line-no">9106</span><span id="line-9106">     * Trim 
removes start and end characters &amp;lt;= 32.</span>
+<span class="source-line-no">9107</span><span id="line-9107">     * To strip 
whitespace use {@link #stripToNull(String)}.</span>
+<span class="source-line-no">9108</span><span id="line-9108">     *</span>
+<span class="source-line-no">9109</span><span id="line-9109">     * 
&lt;pre&gt;</span>
+<span class="source-line-no">9110</span><span id="line-9110">     * 
StringUtils.trimToNull(null)          = null</span>
+<span class="source-line-no">9111</span><span id="line-9111">     * 
StringUtils.trimToNull("")            = null</span>
+<span class="source-line-no">9112</span><span id="line-9112">     * 
StringUtils.trimToNull("     ")       = null</span>
+<span class="source-line-no">9113</span><span id="line-9113">     * 
StringUtils.trimToNull("abc")         = "abc"</span>
+<span class="source-line-no">9114</span><span id="line-9114">     * 
StringUtils.trimToNull("    abc    ") = "abc"</span>
+<span class="source-line-no">9115</span><span id="line-9115">     * 
&lt;/pre&gt;</span>
+<span class="source-line-no">9116</span><span id="line-9116">     *</span>
+<span class="source-line-no">9117</span><span id="line-9117">     * @param str 
 the String to be trimmed, may be null</span>
+<span class="source-line-no">9118</span><span id="line-9118">     * @return 
the trimmed String,</span>
+<span class="source-line-no">9119</span><span id="line-9119">     *  {@code 
null} if only chars &amp;lt;= 32, empty or null String input</span>
+<span class="source-line-no">9120</span><span id="line-9120">     * @since 
2.0</span>
+<span class="source-line-no">9121</span><span id="line-9121">     */</span>
+<span class="source-line-no">9122</span><span id="line-9122">    public static 
String trimToNull(final String str) {</span>
+<span class="source-line-no">9123</span><span id="line-9123">        final 
String ts = trim(str);</span>
+<span class="source-line-no">9124</span><span id="line-9124">        return 
isEmpty(ts) ? null : ts;</span>
+<span class="source-line-no">9125</span><span id="line-9125">    }</span>
+<span class="source-line-no">9126</span><span id="line-9126"></span>
+<span class="source-line-no">9127</span><span id="line-9127">    /**</span>
+<span class="source-line-no">9128</span><span id="line-9128">     * Truncates 
a String. This will turn</span>
+<span class="source-line-no">9129</span><span id="line-9129">     * "Now is 
the time for all good men" into "Now is the time for".</span>
+<span class="source-line-no">9130</span><span id="line-9130">     *</span>
+<span class="source-line-no">9131</span><span id="line-9131">     * 
&lt;p&gt;Specifically:&lt;/p&gt;</span>
+<span class="source-line-no">9132</span><span id="line-9132">     * 
&lt;ul&gt;</span>
+<span class="source-line-no">9133</span><span id="line-9133">     *   
&lt;li&gt;If {@code str} is less than {@code maxWidth} characters</span>
+<span class="source-line-no">9134</span><span id="line-9134">     *       
long, return it.&lt;/li&gt;</span>
+<span class="source-line-no">9135</span><span id="line-9135">     *   
&lt;li&gt;Else truncate it to {@code substring(str, 0, 
maxWidth)}.&lt;/li&gt;</span>
+<span class="source-line-no">9136</span><span id="line-9136">     *   
&lt;li&gt;If {@code maxWidth} is less than {@code 0}, throw an</span>
+<span class="source-line-no">9137</span><span id="line-9137">     *       
{@link IllegalArgumentException}.&lt;/li&gt;</span>
+<span class="source-line-no">9138</span><span id="line-9138">     *   
&lt;li&gt;In no case will it return a String of length greater than</span>
+<span class="source-line-no">9139</span><span id="line-9139">     *       
{@code maxWidth}.&lt;/li&gt;</span>
+<span class="source-line-no">9140</span><span id="line-9140">     * 
&lt;/ul&gt;</span>
+<span class="source-line-no">9141</span><span id="line-9141">     *</span>
+<span class="source-line-no">9142</span><span id="line-9142">     * 
&lt;pre&gt;</span>
+<span class="source-line-no">9143</span><span id="line-9143">     * 
StringUtils.truncate(null, 0)       = null</span>
+<span class="source-line-no">9144</span><span id="line-9144">     * 
StringUtils.truncate(null, 2)       = null</span>
+<span class="source-line-no">9145</span><span id="line-9145">     * 
StringUtils.truncate("", 4)         = ""</span>
+<span class="source-line-no">9146</span><span id="line-9146">     * 
StringUtils.truncate("abcdefg", 4)  = "abcd"</span>
+<span class="source-line-no">9147</span><span id="line-9147">     * 
StringUtils.truncate("abcdefg", 6)  = "abcdef"</span>
+<span class="source-line-no">9148</span><span id="line-9148">     * 
StringUtils.truncate("abcdefg", 7)  = "abcdefg"</span>
+<span class="source-line-no">9149</span><span id="line-9149">     * 
StringUtils.truncate("abcdefg", 8)  = "abcdefg"</span>
+<span class="source-line-no">9150</span><span id="line-9150">     * 
StringUtils.truncate("abcdefg", -1) = throws an IllegalArgumentException</span>
+<span class="source-line-no">9151</span><span id="line-9151">     * 
&lt;/pre&gt;</span>
+<span class="source-line-no">9152</span><span id="line-9152">     *</span>
+<span class="source-line-no">9153</span><span id="line-9153">     * @param str 
 the String to truncate, may be null</span>
+<span class="source-line-no">9154</span><span id="line-9154">     * @param 
maxWidth  maximum length of result String, must be positive</span>
+<span class="source-line-no">9155</span><span id="line-9155">     * @return 
truncated String, {@code null} if null String input</span>
+<span class="source-line-no">9156</span><span id="line-9156">     * @throws 
IllegalArgumentException If {@code maxWidth} is less than {@code 0}</span>
+<span class="source-line-no">9157</span><span id="line-9157">     * @since 
3.5</span>
+<span class="source-line-no">9158</span><span id="line-9158">     */</span>
+<span class="source-line-no">9159</span><span id="line-9159">    public static 
String truncate(final String str, final int maxWidth) {</span>
+<span class="source-line-no">9160</span><span id="line-9160">        return 
truncate(str, 0, maxWidth);</span>
+<span class="source-line-no">9161</span><span id="line-9161">    }</span>
+<span class="source-line-no">9162</span><span id="line-9162"></span>
+<span class="source-line-no">9163</span><span id="line-9163">    /**</span>
+<span class="source-line-no">9164</span><span id="line-9164">     * Truncates 
a String. This will turn</span>
+<span class="source-line-no">9165</span><span id="line-9165">     * "Now is 
the time for all good men" into "is the time for all".</span>
+<span class="source-line-no">9166</span><span id="line-9166">     *</span>
+<span class="source-line-no">9167</span><span id="line-9167">     * 
&lt;p&gt;Works like {@code truncate(String, int)}, but allows you to 
specify</span>
+<span class="source-line-no">9168</span><span id="line-9168">     * a "left 
edge" offset.</span>
+<span class="source-line-no">9169</span><span id="line-9169">     *</span>
+<span class="source-line-no">9170</span><span id="line-9170">     * 
&lt;p&gt;Specifically:&lt;/p&gt;</span>
+<span class="source-line-no">9171</span><span id="line-9171">     * 
&lt;ul&gt;</span>
+<span class="source-line-no">9172</span><span id="line-9172">     *   
&lt;li&gt;If {@code str} is less than {@code maxWidth} characters</span>
+<span class="source-line-no">9173</span><span id="line-9173">     *       
long, return it.&lt;/li&gt;</span>
+<span class="source-line-no">9174</span><span id="line-9174">     *   
&lt;li&gt;Else truncate it to {@code substring(str, offset, 
maxWidth)}.&lt;/li&gt;</span>
+<span class="source-line-no">9175</span><span id="line-9175">     *   
&lt;li&gt;If {@code maxWidth} is less than {@code 0}, throw an</span>
+<span class="source-line-no">9176</span><span id="line-9176">     *       
{@link IllegalArgumentException}.&lt;/li&gt;</span>
+<span class="source-line-no">9177</span><span id="line-9177">     *   
&lt;li&gt;If {@code offset} is less than {@code 0}, throw an</span>
 <span class="source-line-no">9178</span><span id="line-9178">     *       
{@link IllegalArgumentException}.&lt;/li&gt;</span>
-<span class="source-line-no">9179</span><span id="line-9179">     *   
&lt;li&gt;If {@code offset} is less than {@code 0}, throw an</span>
-<span class="source-line-no">9180</span><span id="line-9180">     *       
{@link IllegalArgumentException}.&lt;/li&gt;</span>
-<span class="source-line-no">9181</span><span id="line-9181">     *   
&lt;li&gt;In no case will it return a String of length greater than</span>
-<span class="source-line-no">9182</span><span id="line-9182">     *       
{@code maxWidth}.&lt;/li&gt;</span>
-<span class="source-line-no">9183</span><span id="line-9183">     * 
&lt;/ul&gt;</span>
-<span class="source-line-no">9184</span><span id="line-9184">     *</span>
-<span class="source-line-no">9185</span><span id="line-9185">     * 
&lt;pre&gt;</span>
-<span class="source-line-no">9186</span><span id="line-9186">     * 
StringUtils.truncate(null, 0, 0) = null</span>
-<span class="source-line-no">9187</span><span id="line-9187">     * 
StringUtils.truncate(null, 2, 4) = null</span>
-<span class="source-line-no">9188</span><span id="line-9188">     * 
StringUtils.truncate("", 0, 10) = ""</span>
-<span class="source-line-no">9189</span><span id="line-9189">     * 
StringUtils.truncate("", 2, 10) = ""</span>
-<span class="source-line-no">9190</span><span id="line-9190">     * 
StringUtils.truncate("abcdefghij", 0, 3) = "abc"</span>
-<span class="source-line-no">9191</span><span id="line-9191">     * 
StringUtils.truncate("abcdefghij", 5, 6) = "fghij"</span>
-<span class="source-line-no">9192</span><span id="line-9192">     * 
StringUtils.truncate("raspberry peach", 10, 15) = "peach"</span>
-<span class="source-line-no">9193</span><span id="line-9193">     * 
StringUtils.truncate("abcdefghijklmno", 0, 10) = "abcdefghij"</span>
-<span class="source-line-no">9194</span><span id="line-9194">     * 
StringUtils.truncate("abcdefghijklmno", -1, 10) = throws an 
IllegalArgumentException</span>
-<span class="source-line-no">9195</span><span id="line-9195">     * 
StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, 10) = throws an 
IllegalArgumentException</span>
-<span class="source-line-no">9196</span><span id="line-9196">     * 
StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, Integer.MAX_VALUE) = 
throws an IllegalArgumentException</span>
-<span class="source-line-no">9197</span><span id="line-9197">     * 
StringUtils.truncate("abcdefghijklmno", 0, Integer.MAX_VALUE) = 
"abcdefghijklmno"</span>
-<span class="source-line-no">9198</span><span id="line-9198">     * 
StringUtils.truncate("abcdefghijklmno", 1, 10) = "bcdefghijk"</span>
-<span class="source-line-no">9199</span><span id="line-9199">     * 
StringUtils.truncate("abcdefghijklmno", 2, 10) = "cdefghijkl"</span>
-<span class="source-line-no">9200</span><span id="line-9200">     * 
StringUtils.truncate("abcdefghijklmno", 3, 10) = "defghijklm"</span>
-<span class="source-line-no">9201</span><span id="line-9201">     * 
StringUtils.truncate("abcdefghijklmno", 4, 10) = "efghijklmn"</span>
-<span class="source-line-no">9202</span><span id="line-9202">     * 
StringUtils.truncate("abcdefghijklmno", 5, 10) = "fghijklmno"</span>
-<span class="source-line-no">9203</span><span id="line-9203">     * 
StringUtils.truncate("abcdefghijklmno", 5, 5) = "fghij"</span>
-<span class="source-line-no">9204</span><span id="line-9204">     * 
StringUtils.truncate("abcdefghijklmno", 5, 3) = "fgh"</span>
-<span class="source-line-no">9205</span><span id="line-9205">     * 
StringUtils.truncate("abcdefghijklmno", 10, 3) = "klm"</span>
-<span class="source-line-no">9206</span><span id="line-9206">     * 
StringUtils.truncate("abcdefghijklmno", 10, Integer.MAX_VALUE) = "klmno"</span>
-<span class="source-line-no">9207</span><span id="line-9207">     * 
StringUtils.truncate("abcdefghijklmno", 13, 1) = "n"</span>
-<span class="source-line-no">9208</span><span id="line-9208">     * 
StringUtils.truncate("abcdefghijklmno", 13, Integer.MAX_VALUE) = "no"</span>
-<span class="source-line-no">9209</span><span id="line-9209">     * 
StringUtils.truncate("abcdefghijklmno", 14, 1) = "o"</span>
-<span class="source-line-no">9210</span><span id="line-9210">     * 
StringUtils.truncate("abcdefghijklmno", 14, Integer.MAX_VALUE) = "o"</span>
-<span class="source-line-no">9211</span><span id="line-9211">     * 
StringUtils.truncate("abcdefghijklmno", 15, 1) = ""</span>
-<span class="source-line-no">9212</span><span id="line-9212">     * 
StringUtils.truncate("abcdefghijklmno", 15, Integer.MAX_VALUE) = ""</span>
-<span class="source-line-no">9213</span><span id="line-9213">     * 
StringUtils.truncate("abcdefghijklmno", Integer.MAX_VALUE, Integer.MAX_VALUE) = 
""</span>
-<span class="source-line-no">9214</span><span id="line-9214">     * 
StringUtils.truncate("abcdefghij", 3, -1) = throws an 
IllegalArgumentException</span>
-<span class="source-line-no">9215</span><span id="line-9215">     * 
StringUtils.truncate("abcdefghij", -2, 4) = throws an 
IllegalArgumentException</span>
-<span class="source-line-no">9216</span><span id="line-9216">     * 
&lt;/pre&gt;</span>
-<span class="source-line-no">9217</span><span id="line-9217">     *</span>
-<span class="source-line-no">9218</span><span id="line-9218">     * @param str 
 the String to truncate, may be null</span>
-<span class="source-line-no">9219</span><span id="line-9219">     * @param 
offset  left edge of source String</span>
-<span class="source-line-no">9220</span><span id="line-9220">     * @param 
maxWidth  maximum length of result String, must be positive</span>
-<span class="source-line-no">9221</span><span id="line-9221">     * @return 
truncated String, {@code null} if null String input</span>
-<span class="source-line-no">9222</span><span id="line-9222">     * @throws 
IllegalArgumentException If {@code offset} or {@code maxWidth} is less than 
{@code 0}</span>
-<span class="source-line-no">9223</span><span id="line-9223">     * @since 
3.5</span>
-<span class="source-line-no">9224</span><span id="line-9224">     */</span>
-<span class="source-line-no">9225</span><span id="line-9225">    public static 
String truncate(final String str, final int offset, final int maxWidth) {</span>
-<span class="source-line-no">9226</span><span id="line-9226">        if 
(offset &lt; 0) {</span>
-<span class="source-line-no">9227</span><span id="line-9227">            throw 
new IllegalArgumentException("offset cannot be negative");</span>
-<span class="source-line-no">9228</span><span id="line-9228">        }</span>
-<span class="source-line-no">9229</span><span id="line-9229">        if 
(maxWidth &lt; 0) {</span>
-<span class="source-line-no">9230</span><span id="line-9230">            throw 
new IllegalArgumentException("maxWith cannot be negative");</span>
-<span class="source-line-no">9231</span><span id="line-9231">        }</span>
-<span class="source-line-no">9232</span><span id="line-9232">        if (str 
== null) {</span>
-<span class="source-line-no">9233</span><span id="line-9233">            
return null;</span>
-<span class="source-line-no">9234</span><span id="line-9234">        }</span>
-<span class="source-line-no">9235</span><span id="line-9235">        if 
(offset &gt; str.length()) {</span>
-<span class="source-line-no">9236</span><span id="line-9236">            
return EMPTY;</span>
-<span class="source-line-no">9237</span><span id="line-9237">        }</span>
-<span class="source-line-no">9238</span><span id="line-9238">        if 
(str.length() &gt; maxWidth) {</span>
-<span class="source-line-no">9239</span><span id="line-9239">            final 
int ix = Math.min(offset + maxWidth, str.length());</span>
-<span class="source-line-no">9240</span><span id="line-9240">            
return str.substring(offset, ix);</span>
-<span class="source-line-no">9241</span><span id="line-9241">        }</span>
-<span class="source-line-no">9242</span><span id="line-9242">        return 
str.substring(offset);</span>
-<span class="source-line-no">9243</span><span id="line-9243">    }</span>
-<span class="source-line-no">9244</span><span id="line-9244"></span>
-<span class="source-line-no">9245</span><span id="line-9245">    /**</span>
-<span class="source-line-no">9246</span><span id="line-9246">     * 
Uncapitalizes a String, changing the first character to lower case as</span>
-<span class="source-line-no">9247</span><span id="line-9247">     * per {@link 
Character#toLowerCase(int)}. No other characters are changed.</span>
-<span class="source-line-no">9248</span><span id="line-9248">     *</span>
-<span class="source-line-no">9249</span><span id="line-9249">     * 
&lt;p&gt;For a word based algorithm, see {@link 
org.apache.commons.text.WordUtils#uncapitalize(String)}.</span>
-<span class="source-line-no">9250</span><span id="line-9250">     * A {@code 
null} input String returns {@code null}.&lt;/p&gt;</span>
-<span class="source-line-no">9251</span><span id="line-9251">     *</span>
-<span class="source-line-no">9252</span><span id="line-9252">     * 
&lt;pre&gt;</span>
-<span class="source-line-no">9253</span><span id="line-9253">     * 
StringUtils.uncapitalize(null)  = null</span>
-<span class="source-line-no">9254</span><span id="line-9254">     * 
StringUtils.uncapitalize("")    = ""</span>
-<span class="source-line-no">9255</span><span id="line-9255">     * 
StringUtils.uncapitalize("cat") = "cat"</span>
-<span class="source-line-no">9256</span><span id="line-9256">     * 
StringUtils.uncapitalize("Cat") = "cat"</span>
-<span class="source-line-no">9257</span><span id="line-9257">     * 
StringUtils.uncapitalize("CAT") = "cAT"</span>
-<span class="source-line-no">9258</span><span id="line-9258">     * 
&lt;/pre&gt;</span>
-<span class="source-line-no">9259</span><span id="line-9259">     *</span>
-<span class="source-line-no">9260</span><span id="line-9260">     * @param str 
the String to uncapitalize, may be null</span>
-<span class="source-line-no">9261</span><span id="line-9261">     * @return 
the uncapitalized String, {@code null} if null String input</span>
-<span class="source-line-no">9262</span><span id="line-9262">     * @see 
org.apache.commons.text.WordUtils#uncapitalize(String)</span>
-<span class="source-line-no">9263</span><span id="line-9263">     * @see 
#capitalize(String)</span>
-<span class="source-line-no">9264</span><span id="line-9264">     * @since 
2.0</span>
-<span class="source-line-no">9265</span><span id="line-9265">     */</span>
-<span class="source-line-no">9266</span><span id="line-9266">    public static 
String uncapitalize(final String str) {</span>
-<span class="source-line-no">9267</span><span id="line-9267">        final int 
strLen = length(str);</span>
-<span class="source-line-no">9268</span><span id="line-9268">        if 
(strLen == 0) {</span>
-<span class="source-line-no">9269</span><span id="line-9269">            
return str;</span>
-<span class="source-line-no">9270</span><span id="line-9270">        }</span>
-<span class="source-line-no">9271</span><span id="line-9271"></span>
-<span class="source-line-no">9272</span><span id="line-9272">        final int 
firstCodePoint = str.codePointAt(0);</span>
-<span class="source-line-no">9273</span><span id="line-9273">        final int 
newCodePoint = Character.toLowerCase(firstCodePoint);</span>
-<span class="source-line-no">9274</span><span id="line-9274">        if 
(firstCodePoint == newCodePoint) {</span>
-<span class="source-line-no">9275</span><span id="line-9275">            // 
already capitalized</span>
-<span class="source-line-no">9276</span><span id="line-9276">            
return str;</span>
-<span class="source-line-no">9277</span><span id="line-9277">        }</span>
-<span class="source-line-no">9278</span><span id="line-9278"></span>
-<span class="source-line-no">9279</span><span id="line-9279">        final 
int[] newCodePoints = new int[strLen]; // cannot be longer than the char 
array</span>
-<span class="source-line-no">9280</span><span id="line-9280">        int 
outOffset = 0;</span>
-<span class="source-line-no">9281</span><span id="line-9281">        
newCodePoints[outOffset++] = newCodePoint; // copy the first code point</span>
-<span class="source-line-no">9282</span><span id="line-9282">        for (int 
inOffset = Character.charCount(firstCodePoint); inOffset &lt; strLen; ) {</span>
-<span class="source-line-no">9283</span><span id="line-9283">            final 
int codePoint = str.codePointAt(inOffset);</span>
-<span class="source-line-no">9284</span><span id="line-9284">            
newCodePoints[outOffset++] = codePoint; // copy the remaining ones</span>
-<span class="source-line-no">9285</span><span id="line-9285">            
inOffset += Character.charCount(codePoint);</span>
-<span class="source-line-no">9286</span><span id="line-9286">         }</span>
-<span class="source-line-no">9287</span><span id="line-9287">        return 
new String(newCodePoints, 0, outOffset);</span>
-<span class="source-line-no">9288</span><span id="line-9288">    }</span>
-<span class="source-line-no">9289</span><span id="line-9289"></span>
-<span class="source-line-no">9290</span><span id="line-9290">    /**</span>
-<span class="source-line-no">9291</span><span id="line-9291">     * Unwraps a 
given string from a character.</span>
-<span class="source-line-no">9292</span><span id="line-9292">     *</span>
-<span class="source-line-no">9293</span><span id="line-9293">     * 
&lt;pre&gt;</span>
-<span class="source-line-no">9294</span><span id="line-9294">     * 
StringUtils.unwrap(null, null)         = null</span>
-<span class="source-line-no">9295</span><span id="line-9295">     * 
StringUtils.unwrap(null, '\0')         = null</span>
-<span class="source-line-no">9296</span><span id="line-9296">     * 
StringUtils.unwrap(null, '1')          = null</span>
-<span class="source-line-no">9297</span><span id="line-9297">     * 
StringUtils.unwrap("a", 'a')           = "a"</span>
-<span class="source-line-no">9298</span><span id="line-9298">     * 
StringUtils.unwrap("aa", 'a')           = ""</span>
-<span class="source-line-no">9299</span><span id="line-9299">     * 
StringUtils.unwrap("\'abc\'", '\'')    = "abc"</span>
-<span class="source-line-no">9300</span><span id="line-9300">     * 
StringUtils.unwrap("AABabcBAA", 'A')   = "ABabcBA"</span>
-<span class="source-line-no">9301</span><span id="line-9301">     * 
StringUtils.unwrap("A", '#')           = "A"</span>
-<span class="source-line-no">9302</span><span id="line-9302">     * 
StringUtils.unwrap("#A", '#')          = "#A"</span>
-<span class="source-line-no">9303</span><span id="line-9303">     * 
StringUtils.unwrap("A#", '#')          = "A#"</span>
-<span class="source-line-no">9304</span><span id="line-9304">     * 
&lt;/pre&gt;</span>
-<span class="source-line-no">9305</span><span id="line-9305">     *</span>
-<span class="source-line-no">9306</span><span id="line-9306">     * @param 
str</span>
-<span class="source-line-no">9307</span><span id="line-9307">     *          
the String to be unwrapped, can be null</span>
-<span class="source-line-no">9308</span><span id="line-9308">     * @param 
wrapChar</span>
-<span class="source-line-no">9309</span><span id="line-9309">     *          
the character used to unwrap</span>
-<span class="source-line-no">9310</span><span id="line-9310">     * @return 
unwrapped String or the original string</span>
-<span class="source-line-no">9311</span><span id="line-9311">     *          
if it is not quoted properly with the wrapChar</span>
-<span class="source-line-no">9312</span><span id="line-9312">     * @since 
3.6</span>
-<span class="source-line-no">9313</span><span id="line-9313">     */</span>
-<span class="source-line-no">9314</span><span id="line-9314">    public static 
String unwrap(final String str, final char wrapChar) {</span>
-<span class="source-line-no">9315</span><span id="line-9315">        if 
(isEmpty(str) || wrapChar == CharUtils.NUL || str.length() == 1) {</span>
-<span class="source-line-no">9316</span><span id="line-9316">            
return str;</span>
-<span class="source-line-no">9317</span><span id="line-9317">        }</span>
-<span class="source-line-no">9318</span><span id="line-9318"></span>
-<span class="source-line-no">9319</span><span id="line-9319">        if 
(str.charAt(0) == wrapChar &amp;&amp; str.charAt(str.length() - 1) == wrapChar) 
{</span>
-<span class="source-line-no">9320</span><span id="line-9320">            final 
int startIndex = 0;</span>
-<span class="source-line-no">9321</span><span id="line-9321">            final 
int endIndex = str.length() - 1;</span>
-<span class="source-line-no">9322</span><span id="line-9322"></span>
-<span class="source-line-no">9323</span><span id="line-9323">            
return str.substring(startIndex + 1, endIndex);</span>
-<span class="source-line-no">9324</span><span id="line-9324">        }</span>
-<span class="source-line-no">9325</span><span id="line-9325"></span>
-<span class="source-line-no">9326</span><span id="line-9326">        return 
str;</span>
-<span class="source-line-no">9327</span><span id="line-9327">    }</span>
-<span class="source-line-no">9328</span><span id="line-9328"></span>
-<span class="source-line-no">9329</span><span id="line-9329">    /**</span>
-<span class="source-line-no">9330</span><span id="line-9330">     * Unwraps a 
given string from another string.</span>
-<span class="source-line-no">9331</span><span id="line-9331">     *</span>
-<span class="source-line-no">9332</span><span id="line-9332">     * 
&lt;pre&gt;</span>
-<span class="source-line-no">9333</span><span id="line-9333">     * 
StringUtils.unwrap(null, null)         = null</span>
-<span class="source-line-no">9334</span><span id="line-9334">     * 
StringUtils.unwrap(null, "")           = null</span>
-<span class="source-line-no">9335</span><span id="line-9335">     * 
StringUtils.unwrap(null, "1")          = null</span>
-<span class="source-line-no">9336</span><span id="line-9336">     * 
StringUtils.unwrap("a", "a")           = "a"</span>
-<span class="source-line-no">9337</span><span id="line-9337">     * 
StringUtils.unwrap("aa", "a")          = ""</span>
-<span class="source-line-no">9338</span><span id="line-9338">     * 
StringUtils.unwrap("\'abc\'", "\'")    = "abc"</span>
-<span class="source-line-no">9339</span><span id="line-9339">     * 
StringUtils.unwrap("\"abc\"", "\"")    = "abc"</span>
-<span class="source-line-no">9340</span><span id="line-9340">     * 
StringUtils.unwrap("AABabcBAA", "AA")  = "BabcB"</span>
-<span class="source-line-no">9341</span><span id="line-9341">     * 
StringUtils.unwrap("A", "#")           = "A"</span>
-<span class="source-line-no">9342</span><span id="line-9342">     * 
StringUtils.unwrap("#A", "#")          = "#A"</span>
-<span class="source-line-no">9343</span><span id="line-9343">     * 
StringUtils.unwrap("A#", "#")          = "A#"</span>
-<span class="source-line-no">9344</span><span id="line-9344">     * 
&lt;/pre&gt;</span>
-<span class="source-line-no">9345</span><span id="line-9345">     *</span>
-<span class="source-line-no">9346</span><span id="line-9346">     * @param 
str</span>
-<span class="source-line-no">9347</span><span id="line-9347">     *          
the String to be unwrapped, can be null</span>
-<span class="source-line-no">9348</span><span id="line-9348">     * @param 
wrapToken</span>
-<span class="source-line-no">9349</span><span id="line-9349">     *          
the String used to unwrap</span>
-<span class="source-line-no">9350</span><span id="line-9350">     * @return 
unwrapped String or the original string</span>
-<span class="source-line-no">9351</span><span id="line-9351">     *          
if it is not quoted properly with the wrapToken</span>
-<span class="source-line-no">9352</span><span id="line-9352">     * @since 
3.6</span>
-<span class="source-line-no">9353</span><span id="line-9353">     */</span>
-<span class="source-line-no">9354</span><span id="line-9354">    public static 
String unwrap(final String str, final String wrapToken) {</span>
-<span class="source-line-no">9355</span><span id="line-9355">        if 
(isEmpty(str) || isEmpty(wrapToken) || str.length() &lt; 2 * 
wrapToken.length()) {</span>
-<span class="source-line-no">9356</span><span id="line-9356">            
return str;</span>
-<span class="source-line-no">9357</span><span id="line-9357">        }</span>
-<span class="source-line-no">9358</span><span id="line-9358"></span>
-<span class="source-line-no">9359</span><span id="line-9359">        if 
(startsWith(str, wrapToken) &amp;&amp; endsWith(str, wrapToken)) {</span>
-<span class="source-line-no">9360</span><span id="line-9360">            
return str.substring(wrapToken.length(), str.lastIndexOf(wrapToken));</span>
-<span class="source-line-no">9361</span><span id="line-9361">        }</span>
-<span class="source-line-no">9362</span><span id="line-9362"></span>
-<span class="source-line-no">9363</span><span id="line-9363">        return 
str;</span>
-<span class="source-line-no">9364</span><span id="line-9364">    }</span>
-<span class="source-line-no">9365</span><span id="line-9365"></span>
-<span class="source-line-no">9366</span><span id="line-9366">    /**</span>
-<span class="source-line-no">9367</span><span id="line-9367">     * Converts a 
String to upper case as per {@link String#toUpperCase()}.</span>
+<span class="source-line-no">9179</span><span id="line-9179">     *   
&lt;li&gt;In no case will it return a String of length greater than</span>
+<span class="source-line-no">9180</span><span id="line-9180">     *       
{@code maxWidth}.&lt;/li&gt;</span>
+<span class="source-line-no">9181</span><span id="line-9181">     * 
&lt;/ul&gt;</span>
+<span class="source-line-no">9182</span><span id="line-9182">     *</span>
+<span class="source-line-no">9183</span><span id="line-9183">     * 
&lt;pre&gt;</span>
+<span class="source-line-no">9184</span><span id="line-9184">     * 
StringUtils.truncate(null, 0, 0) = null</span>
+<span class="source-line-no">9185</span><span id="line-9185">     * 
StringUtils.truncate(null, 2, 4) = null</span>
+<span class="source-line-no">9186</span><span id="line-9186">     * 
StringUtils.truncate("", 0, 10) = ""</span>
+<span class="source-line-no">9187</span><span id="line-9187">     * 
StringUtils.truncate("", 2, 10) = ""</span>
+<span class="source-line-no">9188</span><span id="line-9188">     * 
StringUtils.truncate("abcdefghij", 0, 3) = "abc"</span>
+<span class="source-line-no">9189</span><span id="line-9189">     * 
StringUtils.truncate("abcdefghij", 5, 6) = "fghij"</span>
+<span class="source-line-no">9190</span><span id="line-9190">     * 
StringUtils.truncate("raspberry peach", 10, 15) = "peach"</span>
+<span class="source-line-no">9191</span><span id="line-9191">     * 
StringUtils.truncate("abcdefghijklmno", 0, 10) = "abcdefghij"</span>
+<span class="source-line-no">9192</span><span id="line-9192">     * 
StringUtils.truncate("abcdefghijklmno", -1, 10) = throws an 
IllegalArgumentException</span>
+<span class="source-line-no">9193</span><span id="line-9193">     * 
StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, 10) = throws an 
IllegalArgumentException</span>
+<span class="source-line-no">9194</span><span id="line-9194">     * 
StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, Integer.MAX_VALUE) = 
throws an IllegalArgumentException</span>
+<span class="source-line-no">9195</span><span id="line-9195">     * 
StringUtils.truncate("abcdefghijklmno", 0, Integer.MAX_VALUE) = 
"abcdefghijklmno"</span>
+<span class="source-line-no">9196</span><span id="line-9196">     * 
StringUtils.truncate("abcdefghijklmno", 1, 10) = "bcdefghijk"</span>
+<span class="source-line-no">9197</span><span id="line-9197">     * 
StringUtils.truncate("abcdefghijklmno", 2, 10) = "cdefghijkl"</span>
+<span class="source-line-no">9198</span><span id="line-9198">     * 
StringUtils.truncate("abcdefghijklmno", 3, 10) = "defghijklm"</span>
+<span class="source-line-no">9199</span><span id="line-9199">     * 
StringUtils.truncate("abcdefghijklmno", 4, 10) = "efghijklmn"</span>
+<span class="source-line-no">9200</span><span id="line-9200">     * 
StringUtils.truncate("abcdefghijklmno", 5, 10) = "fghijklmno"</span>
+<span class="source-line-no">9201</span><span id="line-9201">     * 
StringUtils.truncate("abcdefghijklmno", 5, 5) = "fghij"</span>
+<span class="source-line-no">9202</span><span id="line-9202">     * 
StringUtils.truncate("abcdefghijklmno", 5, 3) = "fgh"</span>
+<span class="source-line-no">9203</span><span id="line-9203">     * 
StringUtils.truncate("abcdefghijklmno", 10, 3) = "klm"</span>
+<span class="source-line-no">9204</span><span id="line-9204">     * 
StringUtils.truncate("abcdefghijklmno", 10, Integer.MAX_VALUE) = "klmno"</span>
+<span class="source-line-no">9205</span><span id="line-9205">     * 
StringUtils.truncate("abcdefghijklmno", 13, 1) = "n"</span>
+<span class="source-line-no">9206</span><span id="line-9206">     * 
StringUtils.truncate("abcdefghijklmno", 13, Integer.MAX_VALUE) = "no"</span>
+<span class="source-line-no">9207</span><span id="line-9207">     * 
StringUtils.truncate("abcdefghijklmno", 14, 1) = "o"</span>
+<span class="source-line-no">9208</span><span id="line-9208">     * 
StringUtils.truncate("abcdefghijklmno", 14, Integer.MAX_VALUE) = "o"</span>
+<span class="source-line-no">9209</span><span id="line-9209">     * 
StringUtils.truncate("abcdefghijklmno", 15, 1) = ""</span>
+<span class="source-line-no">9210</span><span id="line-9210">     * 
StringUtils.truncate("abcdefghijklmno", 15, Integer.MAX_VALUE) = ""</span>
+<span class="source-line-no">9211</span><span id="line-9211">     * 
StringUtils.truncate("abcdefghijklmno", Integer.MAX_VALUE, Integer.MAX_VALUE) = 
""</span>
+<span class="source-line-no">9212</span><span id="line-9212">     * 
StringUtils.truncate("abcdefghij", 3, -1) = throws an 
IllegalArgumentException</span>
+<span class="source-line-no">9213</span><span id="line-9213">     * 
StringUtils.truncate("abcdefghij", -2, 4) = throws an 
IllegalArgumentException</span>
+<span class="source-line-no">9214</span><span id="line-9214">     * 
&lt;/pre&gt;</span>
+<span class="source-line-no">9215</span><span id="line-9215">     *</span>
+<span class="source-line-no">9216</span><span id="line-9216">     * @param str 
 the String to truncate, may be null</span>
+<span class="source-line-no">9217</span><span id="line-9217">     * @param 
offset  left edge of source String</span>
+<span class="source-line-no">9218</span><span id="line-9218">     * @param 
maxWidth  maximum length of result String, must be positive</span>
+<span class="source-line-no">9219</span><span id="line-9219">     * @return 
truncated String, {@code null} if null String input</span>
+<span class="source-line-no">9220</span><span id="line-9220">     * @throws 
IllegalArgumentException If {@code offset} or {@code maxWidth} is less than 
{@code 0}</span>
+<span class="source-line-no">9221</span><span id="line-9221">     * @since 
3.5</span>
+<span class="source-line-no">9222</span><span id="line-9222">     */</span>
+<span class="source-line-no">9223</span><span id="line-9223">    public static 
String truncate(final String str, final int offset, final int maxWidth) {</span>
+<span class="source-line-no">9224</span><span id="line-9224">        if 
(offset &lt; 0) {</span>
+<span class="source-line-no">9225</span><span id="line-9225">            throw 
new IllegalArgumentException("offset cannot be negative");</span>
+<span class="source-line-no">9226</span><span id="line-9226">        }</span>
+<span class="source-line-no">9227</span><span id="line-9227">        if 
(maxWidth &lt; 0) {</span>
+<span class="source-line-no">9228</span><span id="line-9228">            throw 
new IllegalArgumentException("maxWith cannot be negative");</span>
+<span class="source-line-no">9229</span><span id="line-9229">        }</span>
+<span class="source-line-no">9230</span><span id="line-9230">        if (str 
== null) {</span>
+<span class="source-line-no">9231</span><span id="line-9231">            
return null;</span>
+<span class="source-line-no">9232</span><span id="line-9232">        }</span>
+<span class="source-line-no">9233</span><span id="line-9233">        if 
(offset &gt; str.length()) {</span>
+<span class="source-line-no">9234</span><span id="line-9234">            
return EMPTY;</span>
+<span class="source-line-no">9235</span><span id="line-9235">        }</span>
+<span class="source-line-no">9236</span><span id="line-9236">        if 
(str.length() &gt; maxWidth) {</span>
+<span class="source-line-no">9237</span><span id="line-9237">            final 
int ix = Math.min(offset + maxWidth, str.length());</span>
+<span class="source-line-no">9238</span><span id="line-9238">            
return str.substring(offset, ix);</span>
+<span class="source-line-no">9239</span><span id="line-9239">        }</span>
+<span class="source-line-no">9240</span><span id="line-9240">        return 
str.substring(offset);</span>
+<span class="source-line-no">9241</span><span id="line-9241">    }</span>
+<span class="source-line-no">9242</span><span id="line-9242"></span>
+<span class="source-line-no">9243</span><span id="line-9243">    /**</span>
+<span class="source-line-no">9244</span><span id="line-9244">     * 
Uncapitalizes a String, changing the first character to lower case as</span>
+<span class="source-line-no">9245</span><span id="line-9245">     * per {@link 
Character#toLowerCase(int)}. No other characters are changed.</span>
+<span class="source-line-no">9246</span><span id="line-9246">     *</span>
+<span class="source-line-no">9247</span><span id="line-9247">     * 
&lt;p&gt;For a word based algorithm, see {@link 
org.apache.commons.text.WordUtils#uncapitalize(String)}.</span>
+<span class="source-line-no">9248</span><span id="line-9248">     * A {@code 
null} input String returns {@code null}.&lt;/p&gt;</span>
+<span class="source-line-no">9249</span><span id="line-9249">     *</span>
+<span class="source-line-no">9250</span><span id="line-9250">     * 
&lt;pre&gt;</span>
+<span class="source-line-no">9251</span><span id="line-9251">     * 
StringUtils.uncapitalize(null)  = null</span>
+<span class="source-line-no">9252</span><span id="line-9252">     * 
StringUtils.uncapitalize("")    = ""</span>
+<span class="source-line-no">9253</span><span id="line-9253">     * 
StringUtils.uncapitalize("cat") = "cat"</span>
+<span class="source-line-no">9254</span><span id="line-9254">     * 
StringUtils.uncapitalize("Cat") = "cat"</span>
+<span class="source-line-no">9255</span><span id="line-9255">     * 
StringUtils.uncapitalize("CAT") = "cAT"</span>
+<span class="source-line-no">9256</span><span id="line-9256">     * 
&lt;/pre&gt;</span>
+<span class="source-line-no">9257</span><span id="line-9257">     *</span>
+<span class="source-line-no">9258</span><span id="line-9258">     * @param str 
the String to uncapitalize, may be null</span>
+<span class="source-line-no">9259</span><span id="line-9259">     * @return 
the uncapitalized String, {@code null} if null String input</span>
+<span class="source-line-no">9260</span><span id="line-9260">     * @see 
org.apache.commons.text.WordUtils#uncapitalize(String)</span>
+<span class="source-line-no">9261</span><span id="line-9261">     * @see 
#capitalize(String)</span>
+<span class="source-line-no">9262</span><span id="line-9262">     * @since 
2.0</span>
+<span class="source-line-no">9263</span><span id="line-9263">     */</span>
+<span class="source-line-no">9264</span><span id="line-9264">    public static 
String uncapitalize(final String str) {</span>
+<span class="source-line-no">9265</span><span id="line-9265">        final int 
strLen = length(str);</span>
+<span class="source-line-no">9266</span><span id="line-9266">        if 
(strLen == 0) {</span>
+<span class="source-line-no">9267</span><span id="line-9267">            
return str;</span>
+<span class="source-line-no">9268</span><span id="line-9268">        }</span>
+<span class="source-line-no">9269</span><span id="line-9269"></span>
+<span class="source-line-no">9270</span><span id="line-9270">        final int 
firstCodePoint = str.codePointAt(0);</span>
+<span class="source-line-no">9271</span><span id="line-9271">        final int 
newCodePoint = Character.toLowerCase(firstCodePoint);</span>
+<span class="source-line-no">9272</span><span id="line-9272">        if 
(firstCodePoint == newCodePoint) {</span>
+<span class="source-line-no">9273</span><span id="line-9273">            // 
already capitalized</span>
+<span class="source-line-no">9274</span><span id="line-9274">            
return str;</span>
+<span class="source-line-no">9275</span><span id="line-9275">        }</span>
+<span class="source-line-no">9276</span><span id="line-9276"></span>
+<span class="source-line-no">9277</span><span id="line-9277">        final 
int[] newCodePoints = new int[strLen]; // cannot be longer than the char 
array</span>
+<span class="source-line-no">9278</span><span id="line-9278">        int 
outOffset = 0;</span>
+<span class="source-line-no">9279</span><span id="line-9279">        
newCodePoints[outOffset++] = newCodePoint; // copy the first code point</span>
+<span class="source-line-no">9280</span><span id="line-9280">        for (int 
inOffset = Character.charCount(firstCodePoint); inOffset &lt; strLen; ) {</span>
+<span class="source-line-no">9281</span><span id="line-9281">            final 
int codePoint = str.codePointAt(inOffset);</span>
+<span class="source-line-no">9282</span><span id="line-9282">            
newCodePoints[outOffset++] = codePoint; // copy the remaining ones</span>
+<span class="source-line-no">9283</span><span id="line-9283">            
inOffset += Character.charCount(codePoint);</span>
+<span class="source-line-no">9284</span><span id="line-9284">         }</span>
+<span class="source-line-no">9285</span><span id="line-9285">        return 
new String(newCodePoints, 0, outOffset);</span>
+<span class="source-line-no">9286</span><span id="line-9286">    }</span>
+<span class="source-line-no">9287</span><span id="line-9287"></span>
+<span class="source-line-no">9288</span><span id="line-9288">    /**</span>
+<span class="source-line-no">9289</span><span id="line-9289">     * Unwraps a 
given string from a character.</span>
+<span class="source-line-no">9290</span><span id="line-9290">     *</span>
+<span class="source-line-no">9291</span><span id="line-9291">     * 
&lt;pre&gt;</span>
+<span class="source-line-no">9292</span><span id="line-9292">     * 
StringUtils.unwrap(null, null)         = null</span>
+<span class="source-line-no">9293</span><span id="line-9293">     * 
StringUtils.unwrap(null, '\0')         = null</span>
+<span class="source-line-no">9294</span><span id="line-9294">     * 
StringUtils.unwrap(null, '1')          = null</span>
+<span class="source-line-no">9295</span><span id="line-9295">     * 
StringUtils.unwrap("a", 'a')           = "a"</span>
+<span class="source-line-no">9296</span><span id="line-9296">     * 
StringUtils.unwrap("aa", 'a')           = ""</span>
+<span class="source-line-no">9297</span><span id="line-9297">     * 
StringUtils.unwrap("\'abc\'", '\'')    = "abc"</span>
+<span class="source-line-no">9298</span><span id="line-9298">     * 
StringUtils.unwrap("AABabcBAA", 'A')   = "ABabcBA"</span>
+<span class="source-line-no">9299</span><span id="line-9299">     * 
StringUtils.unwrap("A", '#')           = "A"</span>
+<span class="source-line-no">9300</span><span id="line-9300">     * 
StringUtils.unwrap("#A", '#')          = "#A"</span>
+<span class="source-line-no">9301</span><span id="line-9301">     * 
StringUtils.unwrap("A#", '#')          = "A#"</span>
+<span class="source-line-no">9302</span><span id="line-9302">     * 
&lt;/pre&gt;</span>
+<span class="source-line-no">9303</span><span id="line-9303">     *</span>
+<span class="source-line-no">9304</span><span id="line-9304">     * @param 
str</span>
+<span class="source-line-no">9305</span><span id="line-9305">     *          
the String to be unwrapped, can be null</span>
+<span class="source-line-no">9306</span><span id="line-9306">     * @param 
wrapChar</span>
+<span class="source-line-no">9307</span><span id="line-9307">     *          
the character used to unwrap</span>
+<span class="source-line-no">9308</span><span id="line-9308">     * @return 
unwrapped String or the original string</span>
+<span class="source-line-no">9309</span><span id="line-9309">     *          
if it is not quoted properly with the wrapChar</span>
+<span class="source-line-no">9310</span><span id="line-9310">     * @since 
3.6</span>
+<span class="source-line-no">9311</span><span id="line-9311">     */</span>
+<span class="source-line-no">9312</span><span id="line-9312">    public static 
String unwrap(final String str, final char wrapChar) {</span>
+<span class="source-line-no">9313</span><span id="line-9313">        if 
(isEmpty(str) || wrapChar == CharUtils.NUL || str.length() == 1) {</span>
+<span class="source-line-no">9314</span><span id="line-9314">            
return str;</span>
+<span class="source-line-no">9315</span><span id="line-9315">        }</span>
+<span class="source-line-no">9316</span><span id="line-9316"></span>
+<span class="source-line-no">9317</span><span id="line-9317">        if 
(str.charAt(0) == wrapChar &amp;&amp; str.charAt(str.length() - 1) == wrapChar) 
{</span>
+<span class="source-line-no">9318</span><span id="line-9318">            final 
int startIndex = 0;</span>
+<span class="source-line-no">9319</span><span id="line-9319">            final 
int endIndex = str.length() - 1;</span>
+<span class="source-line-no">9320</span><span id="line-9320"></span>
+<span class="source-line-no">9321</span><span id="line-9321">            
return str.substring(startIndex + 1, endIndex);</span>
+<span class="source-line-no">9322</span><span id="line-9322">        }</span>
+<span class="source-line-no">9323</span><span id="line-9323"></span>
+<span class="source-line-no">9324</span><span id="line-9324">        return 
str;</span>
+<span class="source-line-no">9325</span><span id="line-9325">    }</span>
+<span class="source-line-no">9326</span><span id="line-9326"></span>
+<span class="source-line-no">9327</span><span id="line-9327">    /**</span>
+<span class="source-line-no">9328</span><span id="line-9328">     * Unwraps a 
given string from another string.</span>
+<span class="source-line-no">9329</span><span id="line-9329">     *</span>
+<span class="source-line-no">9330</span><span id="line-9330">     * 
&lt;pre&gt;</span>
+<span class="source-line-no">9331</span><span id="line-9331">     * 
StringUtils.unwrap(null, null)         = null</span>
+<span class="source-line-no">9332</span><span id="line-9332">     * 
StringUtils.unwrap(null, "")           = null</span>
+<span class="source-line-no">9333</span><span id="line-9333">     * 
StringUtils.unwrap(null, "1")          = null</span>
+<span class="source-line-no">9334</span><span id="line-9334">     * 
StringUtils.unwrap("a", "a")           = "a"</span>
+<span class="source-line-no">9335</span><span id="line-9335">     * 
StringUtils.unwrap("aa", "a")          = ""</span>
+<span class="source-line-no">9336</span><span id="line-9336">     * 
StringUtils.unwrap("\'abc\'", "\'")    = "abc"</span>
+<span class="source-line-no">9337</span><span id="line-9337">     * 
StringUtils.unwrap("\"abc\"", "\"")    = "abc"</span>
+<span class="source-line-no">9338</span><span id="line-9338">     * 
StringUtils.unwrap("AABabcBAA", "AA")  = "BabcB"</span>
+<span class="source-line-no">9339</span><span id="line-9339">     * 
StringUtils.unwrap("A", "#")           = "A"</span>
+<span class="source-line-no">9340</span><span id="line-9340">     * 
StringUtils.unwrap("#A", "#")          = "#A"</span>
+<span class="source-line-no">9341</span><span id="line-9341">     * 
StringUtils.unwrap("A#", "#")          = "A#"</span>
+<span class="source-line-no">9342</span><span id="line-9342">     * 
&lt;/pre&gt;</span>
+<span class="source-line-no">9343</span><span id="line-9343">     *</span>
+<span class="source-line-no">9344</span><span id="line-9344">     * @param 
str</span>
+<span class="source-line-no">9345</span><span id="line-9345">     *          
the String to be unwrapped, can be null</span>
+<span class="source-line-no">9346</span><span id="line-9346">     * @param 
wrapToken</span>
+<span class="source-line-no">9347</span><span id="line-9347">     *          
the String used to unwrap</span>
+<span class="source-line-no">9348</span><span id="line-9348">     * @return 
unwrapped String or the original string</span>
+<span class="source-line-no">9349</span><span id="line-9349">     *          
if it is not quoted properly with the wrapToken</span>
+<span class="source-line-no">9350</span><span id="line-9350">     * @since 
3.6</span>
+<span class="source-line-no">9351</span><span id="line-9351">     */</span>
+<span class="source-line-no">9352</span><span id="line-9352">    public static 
String unwrap(final String str, final String wrapToken) {</span>
+<span class="source-line-no">9353</span><span id="line-9353">        if 
(isEmpty(str) || isEmpty(wrapToken) || str.length() &lt; 2 * 
wrapToken.length()) {</span>
+<span class="source-line-no">9354</span><span id="line-9354">            
return str;</span>
+<span class="source-line-no">9355</span><span id="line-9355">        }</span>
+<span class="source-line-no">9356</span><span id="line-9356"></span>
+<span class="source-line-no">9357</span><span id="line-9357">        if 
(startsWith(str, wrapToken) &amp;&amp; endsWith(str, wrapToken)) {</span>
+<span class="source-line-no">9358</span><span id="line-9358">            
return str.substring(wrapToken.length(), str.lastIndexOf(wrapToken));</span>
+<span class="source-line-no">9359</span><span id="line-9359">        }</span>
+<span class="source-line-no">9360</span><span id="line-9360"></span>
+<span class="source-line-no">9361</span><span id="line-9361">        return 
str;</span>
+<span class="source-line-no">9362</span><span id="line-9362">    }</span>
+<span class="source-line-no">9363</span><span id="line-9363"></span>
+<span class="source-line-no">9364</span><span id="line-9364">    /**</span>
+<span class="source-line-no">9365</span><span id="line-9365">     * Converts a 
String to upper case as per {@link String#toUpperCase()}.</span>
+<span class="source-line-no">9366</span><span id="line-9366">     *</span>
+<span class="source-line-no">9367</span><span id="line-9367">     * &lt;p&gt;A 
{@code null} input String returns {@code null}.&lt;/p&gt;</span>
 <span class="source-line-no">9368</span><span id="line-9368">     *</span>
-<span class="source-line-no">9369</span><span id="line-9369">     * &lt;p&gt;A 
{@code null} input String returns {@code null}.&lt;/p&gt;</span>
-<span class="source-line-no">9370</span><span id="line-9370">     *</span>
-<span class="source-line-no">9371</span><span id="line-9371">     * 
&lt;pre&gt;</span>
-<span class="source-line-no">9372</span><span id="line-9372">     * 
StringUtils.upperCase(null)  = null</span>
-<span class="source-line-no">9373</span><span id="line-9373">     * 
StringUtils.upperCase("")    = ""</span>
-<span class="source-line-no">9374</span><span id="line-9374">     * 
StringUtils.upperCase("aBc") = "ABC"</span>
-<span class="source-line-no">9375</span><span id="line-9375">     * 
&lt;/pre&gt;</span>
-<span class="source-line-no">9376</span><span id="line-9376">     *</span>
-<span class="source-line-no">9377</span><span id="line-9377">     * 
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; As described in the documentation 
for {@link String#toUpperCase()},</span>
-<span class="source-line-no">9378</span><span id="line-9378">     * the result 
of this method is affected by the current locale.</span>
-<span class="source-line-no">9379</span><span id="line-9379">     * For 
platform-independent case transformations, the method {@link #upperCase(String, 
Locale)}</span>
-<span class="source-line-no">9380</span><span id="line-9380">     * should be 
used with a specific locale (e.g. {@link Locale#ENGLISH}).&lt;/p&gt;</span>
-<span class="source-line-no">9381</span><span id="line-9381">     *</span>
-<span class="source-line-no">9382</span><span id="line-9382">     * @param str 
 the String to upper case, may be null</span>
-<span class="source-line-no">9383</span><span id="line-9383">     * @return 
the upper-cased String, {@code null} if null String input</span>
-<span class="source-line-no">9384</span><span id="line-9384">     */</span>
-<span class="source-line-no">9385</span><span id="line-9385">    public static 
String upperCase(final String str) {</span>
-<span class="source-line-no">9386</span><span id="line-9386">        if (str 
== null) {</span>
-<span class="source-line-no">9387</span><span id="line-9387">            
return null;</span>
-<span class="source-line-no">9388</span><span id="line-9388">        }</span>
-<span class="source-line-no">9389</span><span id="line-9389">        return 
str.toUpperCase();</span>
-<span class="source-line-no">9390</span><span id="line-9390">    }</span>
-<span class="source-line-no">9391</span><span id="line-9391"></span>
-<span class="source-line-no">9392</span><span id="line-9392">    /**</span>
-<span class="source-line-no">9393</span><span id="line-9393">     * Converts a 
String to upper case as per {@link String#toUpperCase(Locale)}.</span>
+<span class="source-line-no">9369</span><span id="line-9369">     * 
&lt;pre&gt;</span>
+<span class="source-line-no">9370</span><span id="line-9370">     * 
StringUtils.upperCase(null)  = null</span>
+<span class="source-line-no">9371</span><span id="line-9371">     * 
StringUtils.upperCase("")    = ""</span>
+<span class="source-line-no">9372</span><span id="line-9372">     * 
StringUtils.upperCase("aBc") = "ABC"</span>
+<span class="source-line-no">9373</span><span id="line-9373">     * 
&lt;/pre&gt;</span>
+<span class="source-line-no">9374</span><span id="line-9374">     *</span>
+<span class="source-line-no">9375</span><span id="line-9375">     * 
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; As described in the documentation 
for {@link String#toUpperCase()},</span>
+<span class="source-line-no">9376</span><span id="line-9376">     * the result 
of this method is affected by the current locale.</span>
+<span class="source-line-no">9377</span><span id="line-9377">     * For 
platform-independent case transformations, the method {@link #upperCase(String, 
Locale)}</span>
+<span class="source-line-no">9378</span><span id="line-9378">     * should be 
used with a specific locale (e.g. {@link Locale#ENGLISH}).&lt;/p&gt;</span>
+<span class="source-line-no">9379</span><span id="line-9379">     *</span>
+<span class="source-line-no">9380</span><span id="line-9380">     * @param str 
 the String to upper case, may be null</span>
+<span class="source-line-no">9381</span><span id="line-9381">     * @return 
the upper-cased String, {@code null} if null String input</span>
+<span class="source-line-no">9382</span><span id="line-9382">     */</span>
+<span class="source-line-no">9383</span><span id="line-9383">    public static 
String upperCase(final String str) {</span>
+<span class="source-line-no">9384</span><span id="line-9384">        if (str 
== null) {</span>
+<span class="source-line-no">9385</span><span id="line-9385">            
return null;</span>
+<span class="source-line-no">9386</span><span id="line-9386">        }</span>
+<span class="source-line-no">9387</span><span id="line-9387">        return 
str.toUpperCase();</span>
+<span class="source-line-no">9388</span><span id="line-9388">    }</span>
+<span class="source-line-no">9389</span><span id="line-9389"></span>
+<span class="source-line-no">9390</span><span id="line-9390">    /**</span>
+<span class="source-line-no">9391</span><span id="line-9391">     * Converts a 
String to upper case as per {@link String#toUpperCase(Locale)}.</span>
+<span class="source-line-no">9392</span><span id="line-9392">     *</span>
+<span class="source-line-no">9393</span><span id="line-9393">     * &lt;p&gt;A 
{@code null} input String returns {@code null}.&lt;/p&gt;</span>
 <span class="source-line-no">9394</span><span id="line-9394">     *</span>
-<span class="source-line-no">9395</span><span id="line-9395">     * &lt;p&gt;A 
{@code null} input String returns {@code null}.&lt;/p&gt;</span>
-<span class="source-line-no">9396</span><span id="line-9396">     *</span>
-<span class="source-line-no">9397</span><span id="line-9397">     * 
&lt;pre&gt;</span>
-<span class="source-line-no">9398</span><span id="line-9398">     * 
StringUtils.upperCase(null, Locale.ENGLISH)  = null</span>
-<span class="source-line-no">9399</span><span id="line-9399">     * 
StringUtils.upperCase("", Locale.ENGLISH)    = ""</span>
-<span class="source-line-no">9400</span><span id="line-9400">     * 
StringUtils.upperCase("aBc", Locale.ENGLISH) = "ABC"</span>
-<span class="source-line-no">9401</span><span id="line-9401">     * 
&lt;/pre&gt;</span>
-<span class="source-line-no">9402</span><span id="line-9402">     *</span>
-<span class="source-line-no">9403</span><span id="line-9403">     * @param str 
 the String to upper case, may be null</span>
-<span class="source-line-no">9404</span><span id="line-9404">     * @param 
locale  the locale that defines the case transformation rules, must not be 
null</span>
-<span class="source-line-no">9405</span><span id="line-9405">     * @return 
the upper-cased String, {@code null} if null String input</span>
-<span class="source-line-no">9406</span><span id="line-9406">     * @since 
2.5</span>
-<span class="source-line-no">9407</span><span id="line-9407">     */</span>
-<span class="source-line-no">9408</span><span id="line-9408">    public static 
String upperCase(final String str, final Locale locale) {</span>
-<span class="source-line-no">9409</span><span id="line-9409">        if (str 
== null) {</span>
-<span class="source-line-no">9410</span><span id="line-9410">            
return null;</span>
-<span class="source-line-no">9411</span><span id="line-9411">        }</span>
-<span class="source-line-no">9412</span><span id="line-9412">        return 
str.toUpperCase(LocaleUtils.toLocale(locale));</span>
-<span class="source-line-no">9413</span><span id="line-9413">    }</span>
-<span class="source-line-no">9414</span><span id="line-9414"></span>
-<span class="source-line-no">9415</span><span id="line-9415">    /**</span>
-<span class="source-line-no">9416</span><span id="line-9416">     * Returns 
the string representation of the {@code char} array or null.</span>
-<span class="source-line-no">9417</span><span id="line-9417">     *</span>
-<span class="source-line-no">9418</span><span id="line-9418">     * @param 
value the character array.</span>
-<span class="source-line-no">9419</span><span id="line-9419">     * @return a 
String or null</span>
-<span class="source-line-no">9420</span><span id="line-9420">     * @see 
String#valueOf(char[])</span>
-<span class="source-line-no">9421</span><span id="line-9421">     * @since 
3.9</span>
-<span class="source-line-no">9422</span><span id="line-9422">     */</span>
-<span class="source-line-no">9423</span><span id="line-9423">    public static 
String valueOf(final char[] value) {</span>
-<span class="source-line-no">9424</span><span id="line-9424">        return 
value == null ? null : String.valueOf(value);</span>
-<span class="source-line-no">9425</span><span id="line-9425">    }</span>
-<span class="source-line-no">9426</span><span id="line-9426"></span>
-<span class="source-line-no">9427</span><span id="line-9427">    /**</span>
-<span class="source-line-no">9428</span><span id="line-9428">     * Wraps a 
string with a char.</span>
-<span class="source-line-no">9429</span><span id="line-9429">     *</span>
-<span class="source-line-no">9430</span><span id="line-9430">     * 
&lt;pre&gt;</span>
-<span class="source-line-no">9431</span><span id="line-9431">     * 
StringUtils.wrap(null, *)        = null</span>
-<span class="source-line-no">9432</span><span id="line-9432">     * 
StringUtils.wrap("", *)          = ""</span>
-<span class="source-line-no">9433</span><span id="line-9433">     * 
StringUtils.wrap("ab", '\0')     = "ab"</span>
-<span class="source-line-no">9434</span><span id="line-9434">     * 
StringUtils.wrap("ab", 'x')      = "xabx"</span>
-<span class="source-line-no">9435</span><span id="line-9435">     * 
StringUtils.wrap("ab", '\'')     = "'ab'"</span>
-<span class="source-line-no">9436</span><span id="line-9436">     * 
StringUtils.wrap("\"ab\"", '\"') = "\"\"ab\"\""</span>
-<span class="source-line-no">9437</span><span id="line-9437">     * 
&lt;/pre&gt;</span>
-<span class="source-line-no">9438</span><span id="line-9438">     *</span>
-<span class="source-line-no">9439</span><span id="line-9439">     * @param 
str</span>
-<span class="source-line-no">9440</span><span id="line-9440">     *            
the string to be wrapped, may be {@code null}</span>
-<span class="source-line-no">9441</span><span id="line-9441">     * @param 
wrapWith</span>
-<span class="source-line-no">9442</span><span id="line-9442">     *            
the char that will wrap {@code str}</span>
-<span class="source-line-no">9443</span><span id="line-9443">     * @return 
the wrapped string, or {@code null} if {@code str == null}</span>
-<span class="source-line-no">9444</span><span id="line-9444">     * @since 
3.4</span>
-<span class="source-line-no">9445</span><span id="line-9445">     */</span>
-<span class="source-line-no">9446</span><span id="line-9446">    public static 
String wrap(final String str, final char wrapWith) {</span>
-<span class="source-line-no">9447</span><span id="line-9447"></span>
-<span class="source-line-no">9448</span><span id="line-9448">        if 
(isEmpty(str) || wrapWith == CharUtils.NUL) {</span>
-<span class="source-line-no">9449</span><span id="line-9449">            
return str;</span>
-<span class="source-line-no">9450</span><span id="line-9450">        }</span>
-<span class="source-line-no">9451</span><span id="line-9451"></span>
-<span class="source-line-no">9452</span><span id="line-9452">        return 
wrapWith + str + wrapWith;</span>
-<span class="source-line-no">9453</span><span id="line-9453">    }</span>
-<span class="source-line-no">9454</span><span id="line-9454"></span>
-<span class="source-line-no">9455</span><span id="line-9455">    /**</span>
-<span class="source-line-no">9456</span><span id="line-9456">     * Wraps a 
String with another String.</span>
-<span class="source-line-no">9457</span><span id="line-9457">     *</span>
-<span class="source-line-no">9458</span><span id="line-9458">     * 
&lt;p&gt;</span>
-<span class="source-line-no">9459</span><span id="line-9459">     * A {@code 
null} input String returns {@code null}.</span>
-<span class="source-line-no">9460</span><span id="line-9460">     * 
&lt;/p&gt;</span>
-<span class="source-line-no">9461</span><span id="line-9461">     *</span>
-<span class="source-line-no">9462</span><span id="line-9462">     * 
&lt;pre&gt;</span>
-<span class="source-line-no">9463</span><span id="line-9463">     * 
StringUtils.wrap(null, *)         = null</span>
-<span class="source-line-no">9464</span><span id="line-9464">     * 
StringUtils.wrap("", *)           = ""</span>
-<span class="source-line-no">9465</span><span id="line-9465">     * 
StringUtils.wrap("ab", null)      = "ab"</span>
-<span class="source-line-no">9466</span><span id="line-9466">     * 
StringUtils.wrap("ab", "x")       = "xabx"</span>
-<span class="source-line-no">9467</span><span id="line-9467">     * 
StringUtils.wrap("ab", "\"")      = "\"ab\""</span>
-<span class="source-line-no">9468</span><span id="line-9468">     * 
StringUtils.wrap("\"ab\"", "\"")  = "\"\"ab\"\""</span>
-<span class="source-line-no">9469</span><span id="line-9469">     * 
StringUtils.wrap("ab", "'")       = "'ab'"</span>
-<span class="source-line-no">9470</span><span id="line-9470">     * 
StringUtils.wrap("'abcd'", "'")   = "''abcd''"</span>
-<span class="source-line-no">9471</span><span id="line-9471">     * 
StringUtils.wrap("\"abcd\"", "'") = "'\"abcd\"'"</span>
-<span class="source-line-no">9472</span><span id="line-9472">     * 
StringUtils.wrap("'abcd'", "\"")  = "\"'abcd'\""</span>
-<span class="source-line-no">9473</span><span id="line-9473">     * 
&lt;/pre&gt;</span>
-<span class="source-line-no">9474</span><span id="line-9474">     *</span>
-<span class="source-line-no">9475</span><span id="line-9475">     * @param 
str</span>
-<span class="source-line-no">9476</span><span id="line-9476">     *            
the String to be wrapper, may be null</span>
-<span class="source-line-no">9477</span><span id="line-9477">     * @param 
wrapWith</span>
-<span class="source-line-no">9478</span><span id="line-9478">     *            
the String that will wrap str</span>
-<span class="source-line-no">9479</span><span id="line-9479">     * @return 
wrapped String, {@code null} if null String input</span>
-<span class="source-line-no">9480</span><span id="line-9480">     * @since 
3.4</span>
-<span class="source-line-no">9481</span><span id="line-9481">     */</span>
-<span class="source-line-no">9482</span><span id="line-9482">    public static 
String wrap(final String str, final String wrapWith) {</span>
-<span class="source-line-no">9483</span><span id="line-9483"></span>
-<span class="source-line-no">9484</span><span id="line-9484">        if 
(isEmpty(str) || isEmpty(wrapWith)) {</span>
-<span class="source-line-no">9485</span><span id="line-9485">            
return str;</span>

[... 327 lines stripped ...]


Reply via email to