pt.tumba.parser
Class StringUtils

java.lang.Object
  extended by pt.tumba.parser.StringUtils

public class StringUtils
extends java.lang.Object

A collection of String handling utility methods. Some of the methods available in this class have equivalents in the java.lang.String class. However, the implementations provided here are a lot faster, since they do not deal with character internationalization issues.

Author:
Bruno Martins

Field Summary
private static StringUtils _theInstance
          The single instance of this class
private static char[] specialChars
          An array with all the valid accented characters
 
Constructor Summary
private StringUtils()
          Sole constructor, private because this is a Singleton class
 
Method Summary
static java.lang.String capitalizate(java.lang.String str, boolean accents)
          Capitalizates a given String
static int count(java.lang.String str, char c)
          Counts the occurrence of the given char in a String.
static StringUtils getInstance()
          Return the single instance of this class
static char[] getSpecialChars()
          Return an array with all the valid accented characters TODO: add more non-Portuguese diacritic characters.
static java.lang.String invertString(java.lang.String s)
          Reverse a given String
static boolean isAccent(char chr)
          Checks if a given character has diacritics.
static boolean isAlphaNumeric(char c)
          Tests whether a given character is alphabetic, numeric or the hyphen character.
static boolean isCapitalizated(java.lang.String str)
          Checks if a given String is capitalizated
static boolean isUpperCase(char chr)
          Checks if a given character is uppercase.
static boolean isVowel(java.lang.String in, int at)
          Checks if the character at a given position of a given string is a vowel.
static boolean isVowel(java.lang.String in, int at, int length)
          Checks if the character at a given position of a given string is a vowel The Y character is also considered.
static int matchStrings(java.lang.String a, java.lang.String b)
          Matches two strings.
static java.lang.String replace(java.lang.String source, java.lang.String search, java.lang.String replace)
          Returns a new string resulting from replacing all occurrences of the String search in the String source, with the string replace.
static char replaceAccent(char chr)
          Replaces accented characters with their variations without the diacritics.
static java.lang.String separateNumberWithDots(java.lang.String n)
          Takes a numeric string and separates groups of 3 characters with a '.' character.
static java.lang.String separateNumberWithDots(java.lang.String n, int s)
          Takes a numeric string and separates groups of "n" characters with a '.' character.
static java.lang.String toLowerCase(java.lang.String str, boolean accents)
          Converts all of the characters in a given String to lower case.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_theInstance

private static final StringUtils _theInstance
The single instance of this class


specialChars

private static char[] specialChars
An array with all the valid accented characters

Constructor Detail

StringUtils

private StringUtils()
Sole constructor, private because this is a Singleton class

Method Detail

isAlphaNumeric

public static boolean isAlphaNumeric(char c)
Tests whether a given character is alphabetic, numeric or the hyphen character.

Parameters:
c - The character to be tested
Returns:
whether the given character is alphameric or not

count

public static int count(java.lang.String str,
                        char c)
Counts the occurrence of the given char in a String.

Parameters:
str - The string to be tested
c - the char to be counted
Returns:
the frequency of occurrence for the character in the String.

matchStrings

public static int matchStrings(java.lang.String a,
                               java.lang.String b)
Matches two strings.

Parameters:
a - The first string
b - The second string
Returns:
the index where the two strings stop matching starting from 0

getInstance

public static StringUtils getInstance()
Return the single instance of this class

Returns:
An instance of StringUtils

invertString

public static java.lang.String invertString(java.lang.String s)
Reverse a given String

Parameters:
s - The String to reverse
Returns:
The reversed string

replace

public static java.lang.String replace(java.lang.String source,
                                       java.lang.String search,
                                       java.lang.String replace)
Returns a new string resulting from replacing all occurrences of the String search in the String source, with the string replace.

Parameters:
source - The original String
search - The string to be replaces
replace - The replacement String
Returns:
The resulting String

replaceAccent

public static char replaceAccent(char chr)
Replaces accented characters with their variations without the diacritics. TODO: add more non-Portuguese diacritic characters.

Parameters:
chr - the character to check
Returns:
The character without the diacritic

isAccent

public static boolean isAccent(char chr)
Checks if a given character has diacritics. For instance, isAccent('a') would return false, whereas isAccent('รก') would return true.

Parameters:
chr - the char to check
Returns:
true if the character has a diacritic and false otherwise.

isUpperCase

public static boolean isUpperCase(char chr)
Checks if a given character is uppercase. For instance, isUpperCase('a') would return false, whereas isUpperCase('A') would return true.

Parameters:
chr - the char to check
Returns:
true if the character is uppercase and false otherwise

separateNumberWithDots

public static java.lang.String separateNumberWithDots(java.lang.String n)
Takes a numeric string and separates groups of 3 characters with a '.' character. For instance separateNumberWithDots(n) would return "1.000"

Parameters:
n - A numeric String
Returns:
The resulting String

separateNumberWithDots

public static java.lang.String separateNumberWithDots(java.lang.String n,
                                                      int s)
Takes a numeric string and separates groups of "n" characters with a '.' character. For instance separateNumberWithDots(n,3) would return "1.000"

Parameters:
n - A numeric String
s - The number of characters to group
Returns:
The resulting String

toLowerCase

public static java.lang.String toLowerCase(java.lang.String str,
                                           boolean accents)
Converts all of the characters in a given String to lower case.

Parameters:
str - A String
accents - if true, then besides converting the string to lower case accented characters are also replaces with their versions without the diacritics
Returns:
The resulting String

getSpecialChars

public static char[] getSpecialChars()
Return an array with all the valid accented characters TODO: add more non-Portuguese diacritic characters.

Returns:
An array with all the valid accented characters

isVowel

public static final boolean isVowel(java.lang.String in,
                                    int at)
Checks if the character at a given position of a given string is a vowel. The Y character is also considered. TODO: Should portuguese accented characters be considered vowels?

Parameters:
in - A String
at - The position in the String
Returns:
true if the the character at position at of the string in is a vowel and false otherwise

isVowel

public static boolean isVowel(java.lang.String in,
                              int at,
                              int length)
Checks if the character at a given position of a given string is a vowel The Y character is also considered. TODO: Should portuguese accented characters be considered vowels?

Parameters:
in - A String
at - The position in the String
length - The maximum lengh of the String to check
Returns:
true if the the character at position at of the string in is a vowel and false otherwise

isCapitalizated

public static boolean isCapitalizated(java.lang.String str)
Checks if a given String is capitalizated

Parameters:
str - A String
Returns:
true if the given String is capitalizated and false otherwise

capitalizate

public static java.lang.String capitalizate(java.lang.String str,
                                            boolean accents)
Capitalizates a given String

Parameters:
str - A String
Returns:
The capitalizated String