我有 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
注意:Tokens 是一个简单的 Java 类,具有 setstart() 和 gerstart() 等 setter 和 getter
在主要方法中
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
方法本身中打印,我可以获得所有记录,但这里只有最后一条记录。
我的最终意图是迭代所有 3 个向量并比较 vector1.getstart()、vector1.getend() 和 vector1.getname() vector2.getstart()、vector2.getend() 和 vector2.getname() 等元素 vector3.getstart (),vector3.getend() 和 vector3.getname()
有人可以帮我解决这个问题吗?