以下是具体代码,现在的问题是我只要不用substring()函数就能输出到xml文档,用了之后输出就为空,怎么回事啊,都快疯了!!
public static void subChange() {
String s = "",line = "",interval = "A)";
String lineStart = "<题干>";
String lineEnd = "</题干>";
int pos = 0;
try {
FileReader fr= new FileReader("C:\\Documents and Settings\\ggyy\\Mylib\\build\\classes\\temp.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("C:\\Documents and Settings\\ggyy\\Mylib\\build\\classes\\temp.xml");
PrintWriter out=new PrintWriter(fw);
s = "<?xml version=\"1.0\" encoding=\"gb2312\"?>";
out.println(s);
s = "<试题信息>";
out.println(s);
while((line = br.readLine()) != null) {
pos = line.indexOf(interval);
s = line.substring(0+3,pos);
out.println(lineStart);
out.println(s);
System.out.println(s);
out.println(lineEnd);
}
s = "</试题信息>";
out.println(s);
fw.close();
br.close();
out.close();
fw.close();
}
catch (FileNotFoundException e1) {
System.err.println("File not found" );
} catch(IOException e2) {
e2.printStackTrace();
}
}
public static void subChange() {
String s = "",line = "",interval = "A)";
String lineStart = "<题干>";
String lineEnd = "</题干>";
int pos = 0;
try {
FileReader fr= new FileReader("C:\\Documents and Settings\\ggyy\\Mylib\\build\\classes\\temp.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("C:\\Documents and Settings\\ggyy\\Mylib\\build\\classes\\temp.xml");
PrintWriter out=new PrintWriter(fw);
s = "<?xml version=\"1.0\" encoding=\"gb2312\"?>";
out.println(s);
s = "<试题信息>";
out.println(s);
while((line = br.readLine()) != null) {
pos = line.indexOf(interval);
s = line.substring(0+3,pos);
out.println(lineStart);
out.println(s);
System.out.println(s);
out.println(lineEnd);
}
s = "</试题信息>";
out.println(s);
fw.close();
br.close();
out.close();
fw.close();
}
catch (FileNotFoundException e1) {
System.err.println("File not found" );
} catch(IOException e2) {
e2.printStackTrace();
}
}
Returns a new string that is a substring of this string. int pos = 0;
s = line.substring(0+3,pos);
这里错啦pos = 0;
当然输不出来了
我这里不是加了一个定位语句吗?
s = line.substring(0+3,pos);
应该是这里出错了,字符没有找到interval,或者pos<0+3
慢慢测吧
没仔细看哈
s=s = line.substring(0+3,16); 试了下,还是不能输出到xml文档中!
郁闷阿
这样定义好像有问题呀
007remember兄,能具体一点吗?
输出看看
分开定义试试看
s = line.substring(0+3,pos);
System.out.println(s); //这时正常吗?
呵呵,
主要是pos的值,
s = line.substring(0+3,pos);
System.out.println(s);
到这时为止是正常的,就不知道怎么出问题了
<P>1、 1MB等于() A)1000字节 B)1024字节 C)1000?w1000字节 D)1024?w1024字节</P>
<P>2、 与十六进制数200等值得十进制数为() A)256 B)512 C)1024 D)2048</P>
<P>3、 所谓“裸机“是指() A)单片机B)单板机 C)不装备任何软件的计算机 D)只装备操作系统的计算机</P>
<P>4、 能将高级语言编写的源程序转换为目标程序的是() A)链接程序 B)解释程序 C)编译程序 D)编辑程序</P>
<P>5、 在64为计算机中,一个字长所占字节数为() A)64 B)8 C)4 D)1</P>
<P>6、 在Windows环境下,当一个应用程序窗口被最小化后,该应用程序() A)继续在后台运行 B)继续在前台运行 C)终止运行 D)暂停运行</P>
<P>7、在Windows环境下,能实现窗口移动的操作是() A)用鼠标拖动窗口中的任何部位 B)用鼠标拖动窗口的边框 C)用鼠标拖动窗口的控制按钮 D)用鼠标拖动窗口的标题栏</P>
<P>8、 在Windows环境下,PrintScreen键的作用是() A)打印当前窗口的内容 B)打印屏幕内容 C)复制屏幕到剪贴板 D)复制当前窗口到剪贴板</P>
<P>9、 Internet的通信协议是() A)TCP/IP B)BBS C)WWW D)FTP</P>
<P>10、 下列叙述中正确的是() A)计算机病毒只感染可执行文件 B)计算机病毒只感染文本文件 C)计算机病毒只能通过软件复制的方式进行传播 D)计算机病毒可以通过网络或读写磁盘方式进行传播</P>
<P>11、一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是 A)有零个或多个输入 B)有零个或多个输出 C)有穷性 D)可行性</P>
<P>12、 以下叙述中正确的是() A)C语言的源程序不必通过编译就可以直接运行 B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C)C源程序经编译形成的二进制代码可以直接运行 D)C语言中的函数不可以单独进行编译</P>
<P>13、 以下符合C语言语法的实型常量是() A)1.2E0.5 B)3.14.159E C).5E-3 D)E15</P>
<P>14、 以下4组用户定义标识符中,全部合法的一组是() A)_main B)If C)txt D)int enclude -max REAL k_2 sin turbo 3COM _001</P>
<P>15、 若以下选项中的变量已正确定义,则正确的赋值语句是() A)x1=26.8%3 B)1+2=x2 C)x3=0x12 D)x4=1+2=3;</P>
<P>16、 设有以下定义 int a=0; double b=1.25; char c=’A’; #define d 2 则下面语句中错误的是() A)a++; B)b++ C)c++; D)d++;</P>
<P>17、 设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式 计算结果不相符的是() A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b)</P>
<P>18、 有以下程序 main( ) { int x=102,y=012; printf(“%2d,%2d\n”,x,y); } 执行后输出结果是() A)10,01 B002,12 C)102,10 D)02,10</P>
<P>19、以下4个选项中,不能看作一条语句的是() A){;} B)a=0,b=0,c=0; C)if(a>0); D)if(b==0) m=1;n=2;</P>
<P>20、设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是() A)scanf(“%d”,pa); B)scanf(“%d”,a); C)scanf(“%d”,&pa); D)scanf(“%d”,*pa);</P>
<P>21、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是() A)if((a>b)&&(b>c)) k=1; B) if((a>b)||(b>c)) k=1 else k=0; C)if(a<=b) k=0; D)if(a>b) k=1; else if(b<=c) k=1; else if(b>c) k=1; else k=0;</P>
<P>22、有以下程序 main( ) { char k; int I; for(i=1;i<3;i++) { scanf(“%c”,&k); switch(k) { case ‘0’: printf(“another\n”); case ‘1’: printf(“number\n”); } } } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是() A) another B)another C)another D)number number number number number another number</P>
<P>23、有以下程序 main( ) { int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf(“%d,%d,%d\n”,x,y,z); } 程序执行后的输出结果是() A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-5</P>
<P>24、有以下程序 main( ) { int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s); } 程序执行后的输出结果是() A)自然数1~9的累加和 B)自然数1~10的累加和 C)自然数1~9中的奇数之和 D)自然数1~10中的偶数之和</P>
<P>25、有以下程序 main( ) { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; } printf(“n=%d\n”,n); } 程序执行后的输出结果是() A)n=5 B)n=2 C)n=3 D) n=4</P>
<P>26、若程序中定义了以下函数 double myadd(double a,double b) { return (a+b);} 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是() A)double myadd(double a,b); B)double myadd(double,double); C)double myadd(double b,double a); D)double myadd(double x,double y);</P>
<P>27、有以下程序 char fun(char x , char y) { if(x的 return y; } main( ) { int a=’9’,b=’8’,c=’7’; printf(“%c\n”,fun(fun(a,b),fun(b,c))); } 程序的执行结果是() A)函数调用出错 B)8 C)9 D)7</P>
<P>28、设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是() A)p=1; B)*q=2; C)q=p; D)*p=5;</P>
<P>29、有以下程序 void f(int v , int w) { int t; t=v;v=w;w=t; } main( ) { int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf(“%d,%d,%d\n”,x,y,z); } 执行后输出结果是() A)1,2,3 B)3,1,2 C)1,3,2 D)2,3,1</P>
<P>30、有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是() A)5 B)6 C)8 D)9</P>
<P>31、有以下程序 main( ) { char a[]=”abcdefg”,b[10]=”abcdefg”; printf(“%d %d\n”,sizeof(a),sizeof(b)); } 执行后输出结果是() A)7 7 B)8 8 C)8 10 D)10 10</P>
<P>32、有以下程序 void swap1(int c[]) { int t; t=c[0];c[0]=c[1];c[1]=t; } void swap2(int c0,int c1) { int t; t=c0;c0=c1;c1=t; } main( ) { int a[2]={3,5},b[2]={3,5}; swap1(a); swap2(b[0],b[1]); printf(“%d %d %d %d\n”,a[0],a[1],b[0],b[1]); } 其输出结果是() A)5 3 5 3 B) 5 3 3 5 C)3 5 3 5 D)3 5 5 3</P>
<P>33、有以下程序 void sum(int *a) { a[0]=a[1];} main( ) { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--) sum(&aa); printf(“%d\n”,aa[0]); } 执行后的输出结果是() A)4 B)3 C)2 D)1</P>
<P>34、有以下程序 int f(int b[][4]) { int i,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2) i=3-j; s+=b[j]; } return s; } main( ) { int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf(“%d\n”,f(a)); } 执行后的输出结果是() A)12 B)11 C)18 D)16</P>
<P>35、有以下定义 #include char a[10],*b=a; 不能给数组a输入字符串的语句是() A)gets(a) B)gets(a[0]) C)gets(&a[0]); D)gets(b);</P>
<P>36、有以下程序 main( ) { char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”}; printf(“%d\n”,strlen(p[4])); } 执行后输出结果是() A)2 B)3 C)4 D)5</P>
<P>37、有以下程序 int a=2; int f(int *a) {return (*a)++;} main( ) { int s=0; { int a=5; s+=f(&a); } s+=f(&a); printf(“%d\n”,s); } 执行后输出结果是() A)10 B)9 C)7 D)8</P>
<P>38、有以下程序 #define f(x) x*x main( ) { int i; i=f(4+4)/f(2+2); printf(“%d\n”,i); } 执行后输出结果是() A)28 B)22 C)16 D)4</P>
br.close();
fr.close();
out.close();
fw.close();
<试题信息>
<题干>
1、 1MB等于()
</题干>
<题干>
2、 与十六进制数200等值得十进制数为()
</题干>
<题干>
3、 所谓“裸机“是指()
</题干>
<题干>
4、 能将高级语言编写的源程序转换为目标程序的是()
</题干>
<题干>
5、 在64为计算机中,一个字长所占字节数为()
</题干>
<题干>
6、 在Windows环境下,当一个应用程序窗口被最小化后,该应用程序()
</题干>
<题干>
7、在Windows环境下,能实现窗口移动的操作是()
</题干>
<题干>
8、 在Windows环境下,PrintScreen键的作用是()
</题干>
<题干>
9、 Internet的通信协议是()
</题干>
<题干>
10、 下列叙述中正确的是()
</题干>
<题干>
11、一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是
</题干>
<题干>
12、 以下叙述中正确的是()
</题干>
<题干>
13、 以下符合C语言语法的实型常量是()
</题干>
<题干>
14、 以下4组用户定义标识符中,全部合法的一组是()
</题干>
<题干>
15、 若以下选项中的变量已正确定义,则正确的赋值语句是()
</题干>
<题干>
16、 设有以下定义 int a=0; double b=1.25; char c=’A’; #define d 2 则下面语句中错误的是()
</题干>
<题干>
17、 设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式 计算结果不相符的是()
</题干>
<题干>
18、 有以下程序 main( ) { int x=102,y=012; printf(“%2d,%2d\n”,x,y); } 执行后输出结果是()
</题干>
<题干>
19、以下4个选项中,不能看作一条语句的是()
</题干>
<题干>
20、设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()
</题干>
<题干>
21、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是()
</题干>
<题干>
22、有以下程序 main( ) { char k; int I; for(i=1;i<3;i++) { scanf(“%c”,&k); switch(k) { case ‘0’: printf(“another\n”); case ‘1’: printf(“number\n”); } } } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是()
</题干>
<题干>
23、有以下程序 main( ) { int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf(“%d,%d,%d\n”,x,y,z); } 程序执行后的输出结果是()
</题干>
<题干>
24、有以下程序 main( ) { int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s); } 程序执行后的输出结果是()
</题干>
<题干>
25、有以下程序 main( ) { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; } printf(“n=%d\n”,n); } 程序执行后的输出结果是()
</题干>
<题干>
26、若程序中定义了以下函数 double myadd(double a,double b) { return (a+b);} 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()
</题干>
<题干>
27、有以下程序 char fun(char x , char y) { if(x的 return y; } main( ) { int a=’9’,b=’8’,c=’7’; printf(“%c\n”,fun(fun(a,b),fun(b,c))); } 程序的执行结果是()
</题干>
<题干>
28、设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()
</题干>
<题干>
29、有以下程序 void f(int v , int w) { int t; t=v;v=w;w=t; } main( ) { int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf(“%d,%d,%d\n”,x,y,z); } 执行后输出结果是()
</题干>
<题干>
30、有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是()
</题干>
<题干>
31、有以下程序 main( ) { char a[]=”abcdefg”,b[10]=”abcdefg”; printf(“%d %d\n”,sizeof(a),sizeof(b)); } 执行后输出结果是()
</题干>
<题干>
32、有以下程序 void swap1(int c[]) { int t; t=c[0];c[0]=c[1];c[1]=t; } void swap2(int c0,int c1) { int t; t=c0;c0=c1;c1=t; } main( ) { int a[2]={3,5},b[2]={3,5}; swap1(a); swap2(b[0],b[1]); printf(“%d %d %d %d\n”,a[0],a[1],b[0],b[1]); } 其输出结果是()
</题干>
<题干>
33、有以下程序 void sum(int *a) { a[0]=a[1];} main( ) { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--) sum(&aa); printf(“%d\n”,aa[0]); } 执行后的输出结果是()
</题干>
<题干>
34、有以下程序 int f(int b[][4]) { int i,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2) i=3-j; s+=b[j]; } return s; } main( ) { int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf(“%d\n”,f(a)); } 执行后的输出结果是()
</题干>
<题干>
35、有以下定义 #include char a[10],*b=a; 不能给数组a输入字符串的语句是()
</题干>
<题干>
36、有以下程序 main( ) { char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”}; printf(“%d\n”,strlen(p[4])); } 执行后输出结果是()
</题干>
<题干>
37、有以下程序 int a=2; int f(int *a) {return (*a)++;} main( ) { int s=0; { int a=5; s+=f(&a); } s+=f(&a); printf(“%d\n”,s); } 执行后输出结果是()
</题干>
<题干>
38、有以下程序 #define f(x) x*x main( ) { int i; i=f(4+4)/f(2+2); printf(“%d\n”,i); } 执行后输出结果是()
</题干>
</试题信息>
难道是我用的netbeans有问题?
再仔细看看
请问你是用的什么开发工具阿?