2 // This software is now distributed according to
\r
3 // the Lesser Gnu Public License. Please see
\r
4 // http://www.gnu.org/copyleft/lesser.txt for
\r
6 // -- Happy Computing!
\r
8 package com.stevesoft.pat;
\r
11 * Encapsulates the Unicode definitions of Upper, Lower, and Title case as
\r
12 * defined by <a href="http://www.unicode.org"> unicode.org</a>.
\r
14 * The performance of the methods found in String and Character is better, but
\r
15 * these methods work both in java 1.0 and 1.1. If it is desirable, either to
\r
16 * gain a slight performance increase or to accomodate application specific
\r
17 * modifications to the definitions of upper, lower, and title case then it
\r
18 * should be a straightforward task to substitute your own methods for these.
\r
20 final public class CaseMgr
\r
22 final static boolean java_1_0 = false;
\r
24 /** Convert a character to upper case . */
\r
25 public static char toUpperCase(char c)
\r
2052 return (char) ret;
\r
2054 return Character.toUpperCase(c);
\r
2057 /** Convert a character to lower case. */
\r
2058 public static char toLowerCase(char c)
\r
2062 int ret = (int) c;
\r
4178 return (char) ret;
\r
4180 return Character.toLowerCase(c);
\r
4183 /** Convert a String to title case. */
\r
4184 public static String toTitleCase(String s)
\r
4186 javajs.util.SB sb = new javajs.util.SB();
\r
4187 for (int i = 0; i < s.length(); i++)
\r
4189 sb.appendC(CaseMgr.toTitleCase(s.charAt(i)));
\r
4191 return sb.toString();
\r
4194 /** Convert a String to upper case. */
\r
4195 public static String toUpperCase(String s)
\r
4197 javajs.util.SB sb = new javajs.util.SB();
\r
4198 for (int i = 0; i < s.length(); i++)
\r
4200 sb.appendC(CaseMgr.toUpperCase(s.charAt(i)));
\r
4202 return sb.toString();
\r
4205 /** Convert a String to lower case. */
\r
4206 public static String toLowerCase(String s)
\r
4208 javajs.util.SB sb = new javajs.util.SB();
\r
4209 for (int i = 0; i < s.length(); i++)
\r
4211 sb.appendC(CaseMgr.toLowerCase(s.charAt(i)));
\r
4213 return sb.toString();
\r
4216 /** Convert a character to title case. */
\r
4217 public static char toTitleCase(char c)
\r
4221 int ret = (int) toUpperCase(c);
\r
4261 return (char) ret;
\r
4263 return Character.toTitleCase(c);
\r
4267 * Duplicates the regionMatches routine of String -- but makes use of the
\r
4268 * definitions of upper, lower, and title case in this class when ignoreCase
\r
4271 public static boolean regionMatches(StringLike s1, boolean ign, int i1,
\r
4272 StringLike s2, int i2, int i3)
\r
4274 int itot = i2 + i3;
\r
4275 if (itot > s2.length() || i1 + i3 > s1.length())
\r
4281 for (int i = i2; i < itot; i++)
\r
4283 if (s2.charAt(i) != s1.charAt(i1++))
\r
4291 for (int i = i2; i < itot; i++)
\r
4293 if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))
\r
4303 * Duplicates the regionMatches routine of String -- but makes use of the
\r
4304 * definitions of upper, lower, and title case in this class when ignoreCase
\r
4307 public static boolean regionMatches(String s1, boolean ign, int i1,
\r
4308 StringLike s2, int i2, int i3)
\r
4310 int itot = i2 + i3;
\r
4311 if (itot > s2.length() || i1 + i3 > s1.length())
\r
4317 for (int i = i2; i < itot; i++)
\r
4319 if (s2.charAt(i) != s1.charAt(i1++))
\r
4327 for (int i = i2; i < itot; i++)
\r
4329 if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))
\r
4339 * Duplicates the regionMatches routine of String -- but makes use of the
\r
4340 * definitions of upper, lower, and title case in this class when ignoreCase
\r
4343 public static boolean regionMatches(StringLike s1, boolean ign, int i1,
\r
4344 String s2, int i2, int i3)
\r
4346 int itot = i2 + i3;
\r
4347 if (itot > s2.length() || i1 + i3 > s1.length())
\r
4353 for (int i = i2; i < itot; i++)
\r
4355 if (s2.charAt(i) != s1.charAt(i1++))
\r
4363 for (int i = i2; i < itot; i++)
\r
4365 if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))
\r
4375 * Duplicates the regionMatches routine of String -- but makes use of the
\r
4376 * definitions of upper, lower, and title case in this class when ignoreCase
\r
4379 public static boolean regionMatches(String s1, boolean ign, int i1,
\r
4380 String s2, int i2, int i3)
\r
4382 int itot = i2 + i3;
\r
4383 if (itot > s2.length() || i1 + i3 > s1.length())
\r
4389 for (int i = i2; i < itot; i++)
\r
4391 if (s2.charAt(i) != s1.charAt(i1++))
\r
4399 for (int i = i2; i < itot; i++)
\r
4401 if (toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))
\r