<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.4.2_08) on Sat Apr 22 18:56:49 PDT 2006 -->
<TITLE>
StringUtils (Axis API)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.axis.utils.StringUtils class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="StringUtils (Axis API)";
}
</SCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/axis/utils/SOAPMonitor.html" title="class in org.apache.axis.utils"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/axis/utils/tcpmon.html" title="class in org.apache.axis.utils"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="StringUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>

</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.axis.utils</FONT>
<BR>
Class StringUtils</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>org.apache.axis.utils.StringUtils</B>
</PRE>
<HR>
<DL>
<DT>public class <B>StringUtils</B><DT>extends java.lang.Object</DL>

<P>
<HR>

<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->


<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Field Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/StringUtils.html#EMPTY_STRING_ARRAY">EMPTY_STRING_ARRAY</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An empty immutable <code>String</code> array.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->


<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Method Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/StringUtils.html#escapeNumericChar(java.lang.String)">escapeNumericChar</A></B>(java.lang.String&nbsp;str)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write the escaped version of a given string</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/StringUtils.html#escapeNumericChar(java.io.Writer, java.lang.String)">escapeNumericChar</A></B>(java.io.Writer&nbsp;out,
                  java.lang.String&nbsp;str)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write the escaped version of a given string</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/StringUtils.html#isEmpty(java.lang.String)">isEmpty</A></B>(java.lang.String&nbsp;str)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if a String is empty ("") or null.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/StringUtils.html#split(java.lang.String, char)">split</A></B>(java.lang.String&nbsp;str,
      char&nbsp;separatorChar)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Splits the provided text into an array, separator specified.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/StringUtils.html#startsWithIgnoreWhitespaces(java.lang.String, java.lang.String)">startsWithIgnoreWhitespaces</A></B>(java.lang.String&nbsp;prefix,
                            java.lang.String&nbsp;string)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tests if this string starts with the specified prefix (Ignoring whitespaces)</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/StringUtils.html#strip(java.lang.String)">strip</A></B>(java.lang.String&nbsp;str)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Strips whitespace from the start and end of a String.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/StringUtils.html#strip(java.lang.String, java.lang.String)">strip</A></B>(java.lang.String&nbsp;str,
      java.lang.String&nbsp;stripChars)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Strips any of a set of characters from the start and end of a String.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/StringUtils.html#stripEnd(java.lang.String, java.lang.String)">stripEnd</A></B>(java.lang.String&nbsp;str,
         java.lang.String&nbsp;stripChars)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Strips any of a set of characters from the end of a String.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/StringUtils.html#stripStart(java.lang.String, java.lang.String)">stripStart</A></B>(java.lang.String&nbsp;str,
           java.lang.String&nbsp;stripChars)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Strips any of a set of characters from the start of a String.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/StringUtils.html#unescapeNumericChar(java.lang.String)">unescapeNumericChar</A></B>(java.lang.String&nbsp;str)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unescapes numeric character referencs found in the <code>String</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/utils/StringUtils.html#unescapeNumericChar(java.io.Writer, java.lang.String)">unescapeNumericChar</A></B>(java.io.Writer&nbsp;out,
                    java.lang.String&nbsp;str)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unescapes numeric character references found in the <code>String</code> to a
 <code>Writer</code>.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from class java.lang.Object</B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Field Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="EMPTY_STRING_ARRAY"><!-- --></A><H3>
EMPTY_STRING_ARRAY</H3>
<PRE>
public static final java.lang.String[] <B>EMPTY_STRING_ARRAY</B></PRE>
<DL>
<DD>An empty immutable <code>String</code> array.
<P>
<DL>
</DL>
</DL>

<!-- ========= CONSTRUCTOR DETAIL ======== -->


<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Method Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="startsWithIgnoreWhitespaces(java.lang.String, java.lang.String)"><!-- --></A><H3>
startsWithIgnoreWhitespaces</H3>
<PRE>
public static boolean <B>startsWithIgnoreWhitespaces</B>(java.lang.String&nbsp;prefix,
                                                  java.lang.String&nbsp;string)</PRE>
<DL>
<DD>Tests if this string starts with the specified prefix (Ignoring whitespaces)
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>prefix</CODE> - <DD><CODE>string</CODE> - 
<DT><B>Returns:</B><DD>boolean</DL>
</DD>
</DL>
<HR>

<A NAME="split(java.lang.String, char)"><!-- --></A><H3>
split</H3>
<PRE>
public static java.lang.String[] <B>split</B>(java.lang.String&nbsp;str,
                                       char&nbsp;separatorChar)</PRE>
<DL>
<DD><p>Splits the provided text into an array, separator specified.
 This is an alternative to using StringTokenizer.</p>

 <p>The separator is not included in the returned String array.
 Adjacent separators are treated as one separator.</p>

 <p>A <code>null</code> input String returns <code>null</code>.</p>

 <pre>
 StringUtils.split(null, *)         = null
 StringUtils.split("", *)           = []
 StringUtils.split("a.b.c", '.')    = ["a", "b", "c"]
 StringUtils.split("a..b.c", '.')   = ["a", "b", "c"]
 StringUtils.split("a:b:c", '.')    = ["a:b:c"]
 StringUtils.split("a\tb\nc", null) = ["a", "b", "c"]
 StringUtils.split("a b c", ' ')    = ["a", "b", "c"]
 </pre>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>str</CODE> - the String to parse, may be null<DD><CODE>separatorChar</CODE> - the character used as the delimiter,
  <code>null</code> splits on whitespace
<DT><B>Returns:</B><DD>an array of parsed Strings, <code>null</code> if null String input</DL>
</DD>
</DL>
<HR>

<A NAME="isEmpty(java.lang.String)"><!-- --></A><H3>
isEmpty</H3>
<PRE>
public static boolean <B>isEmpty</B>(java.lang.String&nbsp;str)</PRE>
<DL>
<DD><p>Checks if a String is empty ("") or null.</p>

 <pre>
 StringUtils.isEmpty(null)      = true
 StringUtils.isEmpty("")        = true
 StringUtils.isEmpty(" ")       = false
 StringUtils.isEmpty("bob")     = false
 StringUtils.isEmpty("  bob  ") = false
 </pre>

 <p>NOTE: This method changed in Lang version 2.0.
 It no longer trims the String.
 That functionality is available in isBlank().</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>str</CODE> - the String to check, may be null
<DT><B>Returns:</B><DD><code>true</code> if the String is empty or null</DL>
</DD>
</DL>
<HR>

<A NAME="strip(java.lang.String)"><!-- --></A><H3>
strip</H3>
<PRE>
public static java.lang.String <B>strip</B>(java.lang.String&nbsp;str)</PRE>
<DL>
<DD><p>Strips whitespace from the start and end of a String.</p>

 <p>This removes whitespace. Whitespace is defined by 
 <CODE>Character.isWhitespace(char)</CODE>.</p>

 <p>A <code>null</code> input String returns <code>null</code>.</p>

 <pre>
 StringUtils.strip(null)     = null
 StringUtils.strip("")       = ""
 StringUtils.strip("   ")    = ""
 StringUtils.strip("abc")    = "abc"
 StringUtils.strip("  abc")  = "abc"
 StringUtils.strip("abc  ")  = "abc"
 StringUtils.strip(" abc ")  = "abc"
 StringUtils.strip(" ab c ") = "ab c"
 </pre>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>str</CODE> - the String to remove whitespace from, may be null
<DT><B>Returns:</B><DD>the stripped String, <code>null</code> if null String input</DL>
</DD>
</DL>
<HR>

<A NAME="strip(java.lang.String, java.lang.String)"><!-- --></A><H3>
strip</H3>
<PRE>
public static java.lang.String <B>strip</B>(java.lang.String&nbsp;str,
                                     java.lang.String&nbsp;stripChars)</PRE>
<DL>
<DD><p>Strips any of a set of characters from the start and end of a String.
 This is similar to <CODE>String.trim()</CODE> but allows the characters
 to be stripped to be controlled.</p>

 <p>A <code>null</code> input String returns <code>null</code>.
 An empty string ("") input returns the empty string.</p>

 <p>If the stripChars String is <code>null</code>, whitespace is
 stripped as defined by <CODE>Character.isWhitespace(char)</CODE>.
 Alternatively use <A HREF="../../../../org/apache/axis/utils/StringUtils.html#strip(java.lang.String)"><CODE>strip(String)</CODE></A>.</p>

 <pre>
 StringUtils.strip(null, *)          = null
 StringUtils.strip("", *)            = ""
 StringUtils.strip("abc", null)      = "abc"
 StringUtils.strip("  abc", null)    = "abc"
 StringUtils.strip("abc  ", null)    = "abc"
 StringUtils.strip(" abc ", null)    = "abc"
 StringUtils.strip("  abcyx", "xyz") = "  abc"
 </pre>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>str</CODE> - the String to remove characters from, may be null<DD><CODE>stripChars</CODE> - the characters to remove, null treated as whitespace
<DT><B>Returns:</B><DD>the stripped String, <code>null</code> if null String input</DL>
</DD>
</DL>
<HR>

<A NAME="stripStart(java.lang.String, java.lang.String)"><!-- --></A><H3>
stripStart</H3>
<PRE>
public static java.lang.String <B>stripStart</B>(java.lang.String&nbsp;str,
                                          java.lang.String&nbsp;stripChars)</PRE>
<DL>
<DD><p>Strips any of a set of characters from the start of a String.</p>

 <p>A <code>null</code> input String returns <code>null</code>.
 An empty string ("") input returns the empty string.</p>

 <p>If the stripChars String is <code>null</code>, whitespace is
 stripped as defined by <CODE>Character.isWhitespace(char)</CODE>.</p>

 <pre>
 StringUtils.stripStart(null, *)          = null
 StringUtils.stripStart("", *)            = ""
 StringUtils.stripStart("abc", "")        = "abc"
 StringUtils.stripStart("abc", null)      = "abc"
 StringUtils.stripStart("  abc", null)    = "abc"
 StringUtils.stripStart("abc  ", null)    = "abc  "
 StringUtils.stripStart(" abc ", null)    = "abc "
 StringUtils.stripStart("yxabc  ", "xyz") = "abc  "
 </pre>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>str</CODE> - the String to remove characters from, may be null<DD><CODE>stripChars</CODE> - the characters to remove, null treated as whitespace
<DT><B>Returns:</B><DD>the stripped String, <code>null</code> if null String input</DL>
</DD>
</DL>
<HR>

<A NAME="stripEnd(java.lang.String, java.lang.String)"><!-- --></A><H3>
stripEnd</H3>
<PRE>
public static java.lang.String <B>stripEnd</B>(java.lang.String&nbsp;str,
                                        java.lang.String&nbsp;stripChars)</PRE>
<DL>
<DD><p>Strips any of a set of characters from the end of a String.</p>

 <p>A <code>null</code> input String returns <code>null</code>.
 An empty string ("") input returns the empty string.</p>

 <p>If the stripChars String is <code>null</code>, whitespace is
 stripped as defined by <CODE>Character.isWhitespace(char)</CODE>.</p>

 <pre>
 StringUtils.stripEnd(null, *)          = null
 StringUtils.stripEnd("", *)            = ""
 StringUtils.stripEnd("abc", "")        = "abc"
 StringUtils.stripEnd("abc", null)      = "abc"
 StringUtils.stripEnd("  abc", null)    = "  abc"
 StringUtils.stripEnd("abc  ", null)    = "abc"
 StringUtils.stripEnd(" abc ", null)    = " abc"
 StringUtils.stripEnd("  abcyx", "xyz") = "  abc"
 </pre>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>str</CODE> - the String to remove characters from, may be null<DD><CODE>stripChars</CODE> - the characters to remove, null treated as whitespace
<DT><B>Returns:</B><DD>the stripped String, <code>null</code> if null String input</DL>
</DD>
</DL>
<HR>

<A NAME="escapeNumericChar(java.lang.String)"><!-- --></A><H3>
escapeNumericChar</H3>
<PRE>
public static java.lang.String <B>escapeNumericChar</B>(java.lang.String&nbsp;str)</PRE>
<DL>
<DD>write the escaped version of a given string
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>str</CODE> - string to be encoded
<DT><B>Returns:</B><DD>a new escaped <code>String</code>, <code>null</code> if null string input</DL>
</DD>
</DL>
<HR>

<A NAME="escapeNumericChar(java.io.Writer, java.lang.String)"><!-- --></A><H3>
escapeNumericChar</H3>
<PRE>
public static void <B>escapeNumericChar</B>(java.io.Writer&nbsp;out,
                                     java.lang.String&nbsp;str)
                              throws java.io.IOException</PRE>
<DL>
<DD>write the escaped version of a given string
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>out</CODE> - writer to write this string to<DD><CODE>str</CODE> - string to be encoded
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="unescapeNumericChar(java.lang.String)"><!-- --></A><H3>
unescapeNumericChar</H3>
<PRE>
public static java.lang.String <B>unescapeNumericChar</B>(java.lang.String&nbsp;str)</PRE>
<DL>
<DD><p>Unescapes numeric character referencs found in the <code>String</code>.</p>

 <p>For example, it will return a unicode string which means the specified numeric
    character references looks like "&#x3088;&#x3046;&#x3053;&#x305d;".</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>str</CODE> - the <code>String</code> to unescape, may be null
<DT><B>Returns:</B><DD>a new unescaped <code>String</code>, <code>null</code> if null string input</DL>
</DD>
</DL>
<HR>

<A NAME="unescapeNumericChar(java.io.Writer, java.lang.String)"><!-- --></A><H3>
unescapeNumericChar</H3>
<PRE>
public static void <B>unescapeNumericChar</B>(java.io.Writer&nbsp;out,
                                       java.lang.String&nbsp;str)
                                throws java.io.IOException</PRE>
<DL>
<DD><p>Unescapes numeric character references found in the <code>String</code> to a
 <code>Writer</code>.</p>

 <p>For example, it will return a unicode string which means the specified numeric
    character references looks like "&#x3088;&#x3046;&#x3053;&#x305d;".</p>
 
 <p>A <code>null</code> string input has no effect.</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>out</CODE> - the <code>Writer</code> used to output unescaped characters<DD><CODE>str</CODE> - the <code>String</code> to unescape, may be null
<DT><B>Throws:</B>
<DD><CODE>java.lang.IllegalArgumentException</CODE> - if the Writer is <code>null</code>
<DD><CODE>java.io.IOException</CODE> - if error occurs on underlying Writer</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringUtils.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/axis/utils/SOAPMonitor.html" title="class in org.apache.axis.utils"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/axis/utils/tcpmon.html" title="class in org.apache.axis.utils"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="StringUtils.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>

</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright © 2005 Apache Web Services Project. All Rights Reserved.
</BODY>
</HTML>
