我的程序如下:
import java.util.StringTokenizer;
class StringTokenizerDemo {
public static void main(String[] args)
{
String A="a,b";
String B="x,y";
String B3=null,A3=null;
StringTokenizer A1=null,B1=null;
A1 = new StringTokenizer(A, ",");
B1 = new StringTokenizer(B,",");
int A2=A1.countTokens();
int B2=B1.countTokens();
for(int i=0;i<A2;i++)
{
if(A1.hasMoreElements())
A3=A1.nextToken();
System.out.println("A:"+A3);
for(int j=0;j<B2;j++)
{
if(B1.hasMoreElements())
B3=B1.nextToken();
System.out.println("B: "+B3);
}
}
}
}
我希望得到这样的效果:
A:a
B: x
B: y
A:b
B: x
B: y
但是上面的程序始终是这样的结果: A:a
B: x
B: y
A:b
B: y
B: y在上面的程序中循环b的时候B中的游标一直停留在最后一个上面,怎样才能每循环一次否就初始化B的游标呢》?
import java.util.StringTokenizer;
class StringTokenizerDemo {
public static void main(String[] args)
{
String A="a,b";
String B="x,y";
String B3=null,A3=null;
StringTokenizer A1=null,B1=null;
A1 = new StringTokenizer(A, ",");
B1 = new StringTokenizer(B,",");
int A2=A1.countTokens();
int B2=B1.countTokens();
for(int i=0;i<A2;i++)
{
if(A1.hasMoreElements())
A3=A1.nextToken();
System.out.println("A:"+A3);
for(int j=0;j<B2;j++)
{
if(B1.hasMoreElements())
B3=B1.nextToken();
System.out.println("B: "+B3);
}
}
}
}
我希望得到这样的效果:
A:a
B: x
B: y
A:b
B: x
B: y
但是上面的程序始终是这样的结果: A:a
B: x
B: y
A:b
B: y
B: y在上面的程序中循环b的时候B中的游标一直停留在最后一个上面,怎样才能每循环一次否就初始化B的游标呢》?
public class test
{
public static void main(String[] args)
{
String A="a,b";
String B="x,y";
String B3=null,A3=null;
StringTokenizer A1=null,B1=null;
A1 = new StringTokenizer(A, ",");
int A2=A1.countTokens();
for(int i=0;i<A2;i++)
{
if(A1.hasMoreElements())
A3=A1.nextToken();
System.out.println("A:"+A3);
B1 = new StringTokenizer(B,",");
int B2=B1.countTokens();
for(int j=0;j<B2;j++)
{
if(B1.hasMoreElements())
B3=B1.nextToken();
System.out.println("B: "+B3);
}
}
}
}
另外,这里我认为不应该使用countTokens和for循环,这些一开始不确定长度的应该使用while
while(A1.hasMoreTokens()) {
System.out.println("A:" + A1.nextToken());
StringTokenizer B1 = new StringTokenizer(B,",");
while(B1.hasMoreTokens()) {
System.out.println("B: " + B1.nextToken());
}
}