我用StringTokenizer,可是会把空的过滤掉了
如果我的字符串:
3119#*###*##10.9#*##工作
用下面的方法分隔后为变成
3119
10.9
工作三个字符串
而实际上应该是
311910.9
工作这样四个字符串了,要把空的字符也带上了。
请问我该怎么做,谢谢了.
public static String[] split(String source, String delim) {
String[] wordLists;
if (source == null) {
wordLists = new String[1];
wordLists[0] = source;
return wordLists;
}
if (delim == null) {
delim = ",";
}
StringTokenizer st = new StringTokenizer(source, delim);
int total = st.countTokens();
wordLists = new String[total];
for (int i = 0; i < total; i++) {
wordLists[i] = st.nextToken();
}
return wordLists;
}
如果我的字符串:
3119#*###*##10.9#*##工作
用下面的方法分隔后为变成
3119
10.9
工作三个字符串
而实际上应该是
311910.9
工作这样四个字符串了,要把空的字符也带上了。
请问我该怎么做,谢谢了.
public static String[] split(String source, String delim) {
String[] wordLists;
if (source == null) {
wordLists = new String[1];
wordLists[0] = source;
return wordLists;
}
if (delim == null) {
delim = ",";
}
StringTokenizer st = new StringTokenizer(source, delim);
int total = st.countTokens();
wordLists = new String[total];
for (int i = 0; i < total; i++) {
wordLists[i] = st.nextToken();
}
return wordLists;
}
请一下问是否知道为什么String类的split不能对某些字符进行分裂
如"." "|"
我用以上分裂得到的是空串
后用trim
String str=new String("3119#*###*##10.9#*##工作");
String[] wordLists=("3119#*###*##10.9#*##工作").split("*");
for(int i=0;i<wordLists.length();i++){
wordLists[i]=wordLists[i].trim();
}
return wordLists;
比如System.out.println("a|b".split("\\|")[0])
String[] strResult = strSplit.split("#\\*##");
for(int i = 0; i < strResult.length; i++){
System.out.println(strResult[i]);
}
工作
{
//取子串的起始位置
int startIndex = 0;
//将结果数据先放入Vector中
Vector v = new Vector();
//返回的结果字符串数组
String[] str = null;
//存储取子串时起始位置
int index = 0;
//获得匹配子串的位置
startIndex = original.indexOf(regex);
//System.out.println("0" + startIndex);
//如果起始字符串的位置小于字符串的长度,则证明没有取到字符串末尾。
//-1代表取到了末尾
while(startIndex < original.length() && startIndex != -1)
{
String temp = original.substring(index,startIndex);
//取子串
v.appendElement(temp);
//设置取子串的起始位置
index = startIndex + regex.length();
//获得匹配子串的位置
startIndex = original.indexOf(regex,startIndex + regex.length());
}
//取结束的子串
v.appendElement(original.substring(index ,original.length()));
//将Vector对象转换成数组
str = new String[v.size()];
for(int i=0;i<v.size();i++)
{
str[i] = (String)v.elementAt(i);
} //返回生成的数组
return str;
}