mirror of
https://github.com/webmin/webmin.git
synced 2026-06-21 20:00:26 +01:00
Test checkin of some modules
This commit is contained in:
103
file/StringSplitter.java
Normal file
103
file/StringSplitter.java
Normal file
@@ -0,0 +1,103 @@
|
||||
import java.util.Vector;
|
||||
|
||||
// StringSplitter
|
||||
// A stringsplitter object splits a string into a number of substrings,
|
||||
// each separated by one separator character. Separator characters can be
|
||||
// included in the string by escaping them with a \
|
||||
public class StringSplitter
|
||||
{
|
||||
Vector parts = new Vector();
|
||||
int pos = 0;
|
||||
|
||||
StringSplitter(String str, char sep)
|
||||
{
|
||||
this(str, sep, true);
|
||||
}
|
||||
|
||||
StringSplitter(String str, char sep, boolean escape)
|
||||
{
|
||||
StringBuffer current;
|
||||
|
||||
parts.addElement(current = new StringBuffer());
|
||||
for(int i=0; i<str.length(); i++) {
|
||||
char c = str.charAt(i);
|
||||
if (c == '\\' && i != str.length()-1 && escape)
|
||||
current.append(str.charAt(++i));
|
||||
else if (c == sep)
|
||||
parts.addElement(current = new StringBuffer());
|
||||
else
|
||||
current.append(c);
|
||||
}
|
||||
}
|
||||
|
||||
// countTokens
|
||||
// The number of tokens left in the string
|
||||
int countTokens()
|
||||
{
|
||||
return parts.size() - pos;
|
||||
}
|
||||
|
||||
// hasMoreTokens
|
||||
// Can we call nextToken?
|
||||
boolean hasMoreTokens()
|
||||
{
|
||||
return pos < parts.size();
|
||||
}
|
||||
|
||||
// nextToken
|
||||
// Returns the string value of the next token
|
||||
String nextToken()
|
||||
{
|
||||
if (pos < parts.size())
|
||||
return ((StringBuffer)parts.elementAt(pos++)).toString();
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
// gettokens
|
||||
// Returns a vector of strings split from the given input string
|
||||
Vector gettokens()
|
||||
{
|
||||
return parts;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// StringJoiner
|
||||
// The complement of StringSplitter. Takes a number of substrings and adds
|
||||
// them to a string, separated by some character. If the separator character
|
||||
// appears in one of the substrings, escape it with a \
|
||||
class StringJoiner
|
||||
{
|
||||
char sep;
|
||||
StringBuffer str = new StringBuffer();
|
||||
int count = 0;
|
||||
|
||||
// Create a new StringJoiner using the given separator
|
||||
StringJoiner(char s)
|
||||
{
|
||||
sep = s;
|
||||
}
|
||||
|
||||
// add
|
||||
// Add one string, and a separator
|
||||
void add(String s)
|
||||
{
|
||||
if (count != 0)
|
||||
str.append(sep);
|
||||
for(int i=0; i<s.length(); i++) {
|
||||
char c = s.charAt(i);
|
||||
if (c == sep || c == '\\') str.append('\\');
|
||||
str.append(c);
|
||||
}
|
||||
count++;
|
||||
}
|
||||
|
||||
// toString
|
||||
// Get the resulting string
|
||||
public String toString()
|
||||
{
|
||||
return str.toString();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user