Methods Summary |
---|
public static java.lang.String | align(java.lang.String targetStr, java.lang.String paddingStr, java.lang.String type)The str:align function aligns a string within another string.
The first argument gives the target string to be aligned. The second argument gives
the padding string within which it is to be aligned.
If the target string is shorter than the padding string then a range of characters
in the padding string are repaced with those in the target string. Which characters
are replaced depends on the value of the third argument, which gives the type of
alignment. It can be one of 'left', 'right' or 'center'. If no third argument is
given or if it is not one of these values, then it defaults to left alignment.
With left alignment, the range of characters replaced by the target string begins
with the first character in the padding string. With right alignment, the range of
characters replaced by the target string ends with the last character in the padding
string. With center alignment, the range of characters replaced by the target string
is in the middle of the padding string, such that either the number of unreplaced
characters on either side of the range is the same or there is one less on the left
than there is on the right.
If the target string is longer than the padding string, then it is truncated to be
the same length as the padding string and returned.
if (targetStr.length() >= paddingStr.length())
return targetStr.substring(0, paddingStr.length());
if (type.equals("right"))
{
return paddingStr.substring(0, paddingStr.length() - targetStr.length()) + targetStr;
}
else if (type.equals("center"))
{
int startIndex = (paddingStr.length() - targetStr.length()) / 2;
return paddingStr.substring(0, startIndex) + targetStr + paddingStr.substring(startIndex + targetStr.length());
}
// Default is left
else
{
return targetStr + paddingStr.substring(targetStr.length());
}
|
public static java.lang.String | align(java.lang.String targetStr, java.lang.String paddingStr)See above
return align(targetStr, paddingStr, "left");
|
public static java.lang.String | concat(org.w3c.dom.NodeList nl)The str:concat function takes a node set and returns the concatenation of the
string values of the nodes in that node set. If the node set is empty, it returns
an empty string.
StringBuffer sb = new StringBuffer();
for (int i = 0; i < nl.getLength(); i++)
{
Node node = nl.item(i);
String value = toString(node);
if (value != null && value.length() > 0)
sb.append(value);
}
return sb.toString();
|
public static java.lang.String | padding(double length, java.lang.String pattern)The str:padding function creates a padding string of a certain length.
The first argument gives the length of the padding string to be created.
The second argument gives a string to be used to create the padding. This
string is repeated as many times as is necessary to create a string of the
length specified by the first argument; if the string is more than a character
long, it may have to be truncated to produce the required length. If no second
argument is specified, it defaults to a space (' '). If the second argument is
an empty string, str:padding returns an empty string.
if (pattern == null || pattern.length() == 0)
return "";
StringBuffer sb = new StringBuffer();
int len = (int)length;
int numAdded = 0;
int index = 0;
while (numAdded < len)
{
if (index == pattern.length())
index = 0;
sb.append(pattern.charAt(index));
index++;
numAdded++;
}
return sb.toString();
|
public static java.lang.String | padding(double length)See above
return padding(length, " ");
|
public static org.w3c.dom.NodeList | split(java.lang.String str, java.lang.String pattern)The str:split function splits up a string and returns a node set of token
elements, each containing one token from the string.
The first argument is the string to be split. The second argument is a pattern
string. The string given by the first argument is split at any occurrence of
this pattern. For example:
str:split('a, simple, list', ', ') gives the node set consisting of:
a
simple
list
If the second argument is omitted, the default is the string ' ' (i.e. a space).
NodeSet resultSet = new NodeSet();
resultSet.setShouldCacheNodes(true);
boolean done = false;
int fromIndex = 0;
int matchIndex = 0;
String token = null;
while (!done && fromIndex < str.length())
{
matchIndex = str.indexOf(pattern, fromIndex);
if (matchIndex >= 0)
{
token = str.substring(fromIndex, matchIndex);
fromIndex = matchIndex + pattern.length();
}
else
{
done = true;
token = str.substring(fromIndex);
}
Document doc = DocumentHolder.m_doc;
synchronized (doc)
{
Element element = doc.createElement("token");
Text text = doc.createTextNode(token);
element.appendChild(text);
resultSet.addNode(element);
}
}
return resultSet;
|
public static org.w3c.dom.NodeList | split(java.lang.String str)See above
return split(str, " ");
|
public static org.w3c.dom.NodeList | tokenize(java.lang.String toTokenize, java.lang.String delims)The str:tokenize function splits up a string and returns a node set of token
elements, each containing one token from the string.
The first argument is the string to be tokenized. The second argument is a
string consisting of a number of characters. Each character in this string is
taken as a delimiting character. The string given by the first argument is split
at any occurrence of any of these characters. For example:
str:tokenize('2001-06-03T11:40:23', '-T:') gives the node set consisting of:
2001
06
03
11
40
23
If the second argument is omitted, the default is the string '
'
(i.e. whitespace characters).
If the second argument is an empty string, the function returns a set of token
elements, each of which holds a single character.
Note: This one is different from the tokenize extension function in the Xalan
namespace. The one in Xalan returns a set of Text nodes, while this one wraps
the Text nodes inside the token Element nodes.
NodeSet resultSet = new NodeSet();
if (delims != null && delims.length() > 0)
{
StringTokenizer lTokenizer = new StringTokenizer(toTokenize, delims);
Document doc = DocumentHolder.m_doc;
synchronized (doc)
{
while (lTokenizer.hasMoreTokens())
{
Element element = doc.createElement("token");
element.appendChild(doc.createTextNode(lTokenizer.nextToken()));
resultSet.addNode(element);
}
}
}
// If the delimiter is an empty string, create one token Element for
// every single character.
else
{
Document doc = DocumentHolder.m_doc;
synchronized (doc)
{
for (int i = 0; i < toTokenize.length(); i++)
{
Element element = doc.createElement("token");
element.appendChild(doc.createTextNode(toTokenize.substring(i, i+1)));
resultSet.addNode(element);
}
}
}
return resultSet;
|
public static org.w3c.dom.NodeList | tokenize(java.lang.String toTokenize)See above
return tokenize(toTokenize, " \t\n\r");
|