最近公司需要一个手机的Java ME客户端,于是乎就开始研究。
发现限制太多了,也可能是用Java SE用习惯了。真是带着镣铐跳舞。很多Java SE有的东西,在Java ME 里都需要自己实现。
比如:String 类的Split方法。还就是集合只有Hashtable和Vector。
我写了两个工具方法:
string2Vector
可以用来处理类似CSV格式的String。
比如:
string2Hashtable
可以用来处理Properties文件格式的String。
比如:
name=abc
age=123
gender=male
发现限制太多了,也可能是用Java SE用习惯了。真是带着镣铐跳舞。很多Java SE有的东西,在Java ME 里都需要自己实现。
比如:String 类的Split方法。还就是集合只有Hashtable和Vector。
我写了两个工具方法:
string2Vector
可以用来处理类似CSV格式的String。
比如:
String in="abd,ddd,adsfa";
Vector out = StringUtil.string2Vector(in, ",");
string2Hashtable
可以用来处理Properties文件格式的String。
比如:
name=abc
age=123
gender=male
String in = "name=abc\nage=123\ngender=male";
Hashtable out = StringUtil.string2Hashtable(in, "\n", "=");
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
public class StringUtil {
public static Vector string2Vector(String in, String delimiter) {
Vector vector = new Vector();
if (in == null) {
return null;
}
if (delimiter == null || delimiter.length() == 0) {
vector.addElement(in);
return vector;
}
int fromIndex = 0;
int pos;
while ((pos = in.indexOf(delimiter, fromIndex)) >= 0) {
String interim = in.substring(fromIndex, pos);
if (interim.length() > 0) {
vector.addElement(interim);
}
fromIndex = pos + delimiter.length();
}
return vector;
}
public static Hashtable string2Hashtable(String in, String delimEntry,
String delimKey) {
if (in == null) {
return null;
}
Hashtable hashtable = new Hashtable();
if (delimEntry == null || delimEntry.length() == 0 || delimKey == null
|| delimKey.length() == 0) {
hashtable.put(in, "");
return hashtable;
}
Enumeration enumeration = string2Vector(in, delimEntry).elements();
int len = delimKey.length();
while (enumeration.hasMoreElements()) {
String entry = (String) enumeration.nextElement();
int pos = entry.indexOf(delimKey);
if (pos > 0) {
String value = entry.substring(pos + len);
hashtable.put(entry.substring(0, pos), value);
} else {
hashtable.put(entry, "");
}
}
return hashtable;
}
}