我有3個矢量使用如下所示相似的格式..迭代3個矢量分割內容和分配
向量1:
start:231 stop:234 name:xyz
start:331 stop:334 name:abc
start:431 stop:434 name:fds
Vector2和的Vector3也具有相同的格式。 我必須迭代3個向量並分割內容並分配給字符串或整數。
public static Tokens getTokens(Vector<NameBuffer> vc1) {
Tokens tokens=new Tokens();
Iterator it1=vc1.iterator();
while(it1.hasNext())
{
String onerecord= it1.next().toString();
StringTokenizer stringTokenizer = new StringTokenizer(onerecord);
while (stringTokenizer.hasMoreElements()) {
String tmp = stringTokenizer.nextToken();
if (tmp.startsWith("start=")) {
tmp = tmp.substring("start=".length());
try {
int begin = Integer.parseInt(tmp);
tokens.setbegin(begin);
}
catch (NumberFormatException nfe) {
nfe.printStackTrace();
}
}
else {
System.err.println("Wrong format");
}
String tmp1 = stringTokenizer.nextToken();
if (tmp1.startsWith("stop=")) {
tmp1 = tmp1.substring("stop=".length());
try {
int end = Integer.parseInt(tmp1);
tokens.setend(end);
//System.out.println(end);
}
catch (NumberFormatException nfe) {
nfe.printStackTrace();
}
}
else {
System.err.println("Wrong format");
}
String tmp2 = stringTokenizer.nextToken();
if (tmp2.startsWith("name=")) {
tmp2 = tmp2.substring("name=".length());
String name = tmp2;
tokens.setname(name);
}
}
else {
System.err.println("Wrong format");
}
}//while(stringtokenizer.hasmoreElements
System.out.println(tokens);// At this point i was able to print all records
}//while(it1.hasNext()
return tokens; //Is the problem with this return?
}//getTokens
注:
我有一個像下面做記號是一個簡單的Java類的setter和像setstart干將()和gerstart()
在main方法
public static void main(String[] args) {
Tokens fnTokens=getTokens(vector1);
for(i=0;i<firstname.size();i++)
{
System.out.println(fnTokens);// it is printing only last record in my vector
}
}
如果我打印在getTokens
方法本身,我能夠獲得所有記錄,但這裏只有最後一條記錄。 (),vector1.getend()和vector1.getname() vector2.getstart(),vector2.getend()和vector2.getname()創建一個對象, () vector3.getstart(),vector3.getend()和vector3.getname()
有人能幫我解決這個問題嗎?