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 &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"> * <p>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
&lt;= 32.</em>
-<a class="jxr_linenumber" name="L9057" href="#L9057">9057</a> <em
class="jxr_javadoccomment"> * To strip whitespace use {@link
#strip(String)}.</p></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"> * <p>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.</p></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"> * <pre></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"> * </pre></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 &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"> * <p>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
&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"> * <pre></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"> * </pre></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 &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"> * <p>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
&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"> * <pre></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"> * </pre></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 &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"> * <p>Specifically:</p></em>
-<a class="jxr_linenumber" name="L9134" href="#L9134">9134</a> <em
class="jxr_javadoccomment"> * <ul></em>
-<a class="jxr_linenumber" name="L9135" href="#L9135">9135</a> <em
class="jxr_javadoccomment"> * <li>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.</li></em>
-<a class="jxr_linenumber" name="L9137" href="#L9137">9137</a> <em
class="jxr_javadoccomment"> * <li>Else truncate it to {@code
substring(str, 0, maxWidth)}.</li></em>
-<a class="jxr_linenumber" name="L9138" href="#L9138">9138</a> <em
class="jxr_javadoccomment"> * <li>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}.</li></em>
-<a class="jxr_linenumber" name="L9140" href="#L9140">9140</a> <em
class="jxr_javadoccomment"> * <li>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}.</li></em>
-<a class="jxr_linenumber" name="L9142" href="#L9142">9142</a> <em
class="jxr_javadoccomment"> * </ul></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"> * <pre></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"> * </pre></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"> * <p>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"> * <p>Specifically:</p></em>
-<a class="jxr_linenumber" name="L9173" href="#L9173">9173</a> <em
class="jxr_javadoccomment"> * <ul></em>
-<a class="jxr_linenumber" name="L9174" href="#L9174">9174</a> <em
class="jxr_javadoccomment"> * <li>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.</li></em>
-<a class="jxr_linenumber" name="L9176" href="#L9176">9176</a> <em
class="jxr_javadoccomment"> * <li>Else truncate it to {@code
substring(str, offset, maxWidth)}.</li></em>
-<a class="jxr_linenumber" name="L9177" href="#L9177">9177</a> <em
class="jxr_javadoccomment"> * <li>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 &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"> * <p>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
&lt;= 32.</em>
+<a class="jxr_linenumber" name="L9055" href="#L9055">9055</a> <em
class="jxr_javadoccomment"> * To strip whitespace use {@link
#strip(String)}.</p></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"> * <p>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.</p></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"> * <pre></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"> * </pre></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 &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"> * <p>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
&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"> * <pre></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"> * </pre></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 &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"> * <p>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
&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"> * <pre></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"> * </pre></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 &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"> * <p>Specifically:</p></em>
+<a class="jxr_linenumber" name="L9132" href="#L9132">9132</a> <em
class="jxr_javadoccomment"> * <ul></em>
+<a class="jxr_linenumber" name="L9133" href="#L9133">9133</a> <em
class="jxr_javadoccomment"> * <li>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.</li></em>
+<a class="jxr_linenumber" name="L9135" href="#L9135">9135</a> <em
class="jxr_javadoccomment"> * <li>Else truncate it to {@code
substring(str, 0, maxWidth)}.</li></em>
+<a class="jxr_linenumber" name="L9136" href="#L9136">9136</a> <em
class="jxr_javadoccomment"> * <li>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}.</li></em>
+<a class="jxr_linenumber" name="L9138" href="#L9138">9138</a> <em
class="jxr_javadoccomment"> * <li>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}.</li></em>
+<a class="jxr_linenumber" name="L9140" href="#L9140">9140</a> <em
class="jxr_javadoccomment"> * </ul></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"> * <pre></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"> * </pre></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"> * <p>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"> * <p>Specifically:</p></em>
+<a class="jxr_linenumber" name="L9171" href="#L9171">9171</a> <em
class="jxr_javadoccomment"> * <ul></em>
+<a class="jxr_linenumber" name="L9172" href="#L9172">9172</a> <em
class="jxr_javadoccomment"> * <li>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.</li></em>
+<a class="jxr_linenumber" name="L9174" href="#L9174">9174</a> <em
class="jxr_javadoccomment"> * <li>Else truncate it to {@code
substring(str, offset, maxWidth)}.</li></em>
+<a class="jxr_linenumber" name="L9175" href="#L9175">9175</a> <em
class="jxr_javadoccomment"> * <li>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}.</li></em>
+<a class="jxr_linenumber" name="L9177" href="#L9177">9177</a> <em
class="jxr_javadoccomment"> * <li>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}.</li></em>
-<a class="jxr_linenumber" name="L9179" href="#L9179">9179</a> <em
class="jxr_javadoccomment"> * <li>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}.</li></em>
-<a class="jxr_linenumber" name="L9181" href="#L9181">9181</a> <em
class="jxr_javadoccomment"> * <li>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}.</li></em>
-<a class="jxr_linenumber" name="L9183" href="#L9183">9183</a> <em
class="jxr_javadoccomment"> * </ul></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"> * <pre></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"> * </pre></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 < 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 < 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 > 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() > 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"> * <p>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}.</p></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"> * <pre></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"> * </pre></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 < 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"> * <pre></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"> * </pre></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 &&
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"> * <pre></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("\"abc\"",
"\"") = "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"> * </pre></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() < 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) &&
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"> * <li>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}.</li></em>
+<a class="jxr_linenumber" name="L9181" href="#L9181">9181</a> <em
class="jxr_javadoccomment"> * </ul></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"> * <pre></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"> * </pre></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 < 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 < 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 > 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() > 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"> * <p>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}.</p></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"> * <pre></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"> * </pre></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 < 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"> * <pre></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"> * </pre></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 &&
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 ...]