【发布时间】:2012-09-23 14:06:34
【问题描述】:
我想将给定的字符串“解析”成向量。向量以“[”开头,以“]”结尾。向量的值以及向量本身由“,”分隔。如果我使用整数作为值,我的代码可以正常工作“[1,2,3],[5,2,3],[1,6,3]”。但是当我将整数值与双精度值 "[1,2.5,3],[5,2,3],[1,6,3]" 混合时,stringtokenizer 返回错误的值(在这种情况下是“ 1" "2.5" 然后是 "3]" ......)
String s = "[1,2.5,3],[5,2,3],[1,6,3]";
Vector<Vector<Double>> matrix = new Vector<Vector<Double>>();
for(int j=0;j<s.length();j++) {
if (s.charAt(j)=='[') {
int k=s.indexOf("]");
StringTokenizer st = new StringTokenizer(s.substring(j+1, j+k));// j+k-1 does not work either
Vector<Double> vector = new Vector<Double>();
while (st.hasMoreTokens()) {
vector.add(Double.parseDouble(st.nextToken(",")));//Exception in thread "main" java.lang.NumberFormatException: For input string: "3]"
}
matrix.add(vector);
}
}
【问题讨论】:
标签: java stringtokenizer