//方法 返回一个String []
public static String[] commaDelimitedListToStringArray(String str)
{
return delimitedListToStringArray(str, ",");
}
//
public static String[] delimitedListToStringArray(String str, String delimiter)
{
return delimitedListToStringArray(str, delimiter, null);
}
//delimiter ","
public static String[] delimitedListToStringArray(String str, String delimiter, String charsToDelete)
{
if(str == null)
return new String[0];
if(delimiter == null)
return (new String[] {
str
});
List result = new ArrayList();
if("".equals(delimiter))
{
for(int i = 0; i < str.length(); i++)
result.add(deleteAny(str.substring(i, i + 1), charsToDelete));
}
//代码调用的部分
else
{
int pos;
int delPos;
//indexOf(String str, int fromIndex) 方法返回在此字符串中第一次出现的指定子指数,
//在指定的索引开始。返回的整数是最小的k值:
for(pos = 0; (delPos = str.indexOf(delimiter, pos)) != -1; pos = delPos + delimiter.length())
//获得一个逗号分隔的字符串 str.substring(pos, delPos)
result.add(deleteAny(str.substring(pos, delPos), charsToDelete));
if(str.length() > 0 && pos <= str.length())
result.add(deleteAny(str.substring(pos), charsToDelete));
}
return toStringArray(result);
}
//charsToDelete为 null
public static String deleteAny(String inString, String charsToDelete)
{
if(!hasLength(inString) || !hasLength(charsToDelete))
return inString;
StringBuilder sb = new StringBuilder();
for(int i = 0; i < inString.length(); i++)
{
char c = inString.charAt(i);
if(charsToDelete.indexOf(c) == -1)
sb.append(c);
}
return sb.toString();
}
public static String[] commaDelimitedListToStringArray(String str)
{
return delimitedListToStringArray(str, ",");
}
//
public static String[] delimitedListToStringArray(String str, String delimiter)
{
return delimitedListToStringArray(str, delimiter, null);
}
//delimiter ","
public static String[] delimitedListToStringArray(String str, String delimiter, String charsToDelete)
{
if(str == null)
return new String[0];
if(delimiter == null)
return (new String[] {
str
});
List result = new ArrayList();
if("".equals(delimiter))
{
for(int i = 0; i < str.length(); i++)
result.add(deleteAny(str.substring(i, i + 1), charsToDelete));
}
//代码调用的部分
else
{
int pos;
int delPos;
//indexOf(String str, int fromIndex) 方法返回在此字符串中第一次出现的指定子指数,
//在指定的索引开始。返回的整数是最小的k值:
for(pos = 0; (delPos = str.indexOf(delimiter, pos)) != -1; pos = delPos + delimiter.length())
//获得一个逗号分隔的字符串 str.substring(pos, delPos)
result.add(deleteAny(str.substring(pos, delPos), charsToDelete));
if(str.length() > 0 && pos <= str.length())
result.add(deleteAny(str.substring(pos), charsToDelete));
}
return toStringArray(result);
}
//charsToDelete为 null
public static String deleteAny(String inString, String charsToDelete)
{
if(!hasLength(inString) || !hasLength(charsToDelete))
return inString;
StringBuilder sb = new StringBuilder();
for(int i = 0; i < inString.length(); i++)
{
char c = inString.charAt(i);
if(charsToDelete.indexOf(c) == -1)
sb.append(c);
}
return sb.toString();
}