求助:用readByte()读取数据去掉空格的问题!!

该昵称不合法被占用 2009-08-30 08:46:10
代码如下,希望高手帮帮我

import java.io.*;
class Din{

public static void main(String args[]){
try{
File S = new File("Data.txt");
FileInputStream S1 = new FileInputStream(S);
DataInputStream C1= new DataInputStream(S1);


int k;
char qi[] = new char[2000];
//int qi[] = new int[2000];
for(int i=0;i<60;i++){
int te;
k=C1.readByte();
te=(int)k;
if(te!=32)
qi[i]=(char)k;//这样为什么不能删除空格
System.out.print(qi[i]);
}
}
catch(IOException e){
}
}
}

以下是data.txt中的数据:
09001 2 9 1 0 3 7 4 26 4:3 1,0
...全文
295 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanliang_xt 2009-08-30
  • 打赏
  • 举报
回复
还有就是循环的次数应为:
字符总个数 - 空格个数

否则就没有结果显示了。因为EOFException发生。
bigbug9002 2009-08-30
  • 打赏
  • 举报
回复
用BufferedReader()
readLine()读进一行.
用replacAll(" ","")可以把所有的空格去掉。
  • 打赏
  • 举报
回复
谢谢了,解决方法很巧妙
我怎么就没想到那 呵呵!
yanliang_xt 2009-08-30
  • 打赏
  • 举报
回复
如果是空格的话,记得一定要i--啊。。。。。。。。。。。。。。。。。。。。。。。。。
yanliang_xt 2009-08-30
  • 打赏
  • 举报
回复
晕死了,,这个真是隐藏啊。。把我忽悠了这么长时间。。
yanliang_xt 2009-08-30
  • 打赏
  • 举报
回复

import java.io.*;
class Din{

public static void main(String args[]){
try{
File S = new File("Data.txt");
FileInputStream S1 = new FileInputStream(S);
DataInputStream C1= new DataInputStream(S1);


int k;
char qi[] = new char[2000];
//int qi[] = new int[2000];
for(int i=0;i<20;i++){
int te;
k=C1.readByte();
te=(int)k;
if(te==32){
i--;
}
else {
qi[i]=(char)k;
System.out.print(qi[i]);
}
}
System.out.println("*******************************************************");
for(int i=0;i<60;i++){
System.out.print(qi[i]);
}

}
catch(IOException e){
}
}
}
  • 打赏
  • 举报
回复
帮帮忙啊!!!
  • 打赏
  • 举报
回复
[Quote=引用楼主 darkiss123 的回复:]
代码如下,希望高手帮帮我
Java codeimport java.io.*;class Din{publicstaticvoid main(String args[]){try{
File S=new File("Data.txt");
FileInputStream S1=new FileInputStream(S);
DataInputStream C1=new DataInputStream(S1);int k;char qi[]=newchar[2000];//int qi[] = new int[2000];for(int i=0;i<60;i++){int te;
k=C1.readByte();
te=(int)k;if(te!=32)
qi[i]=(char)k;//这样为什么不能删除空格 System.out.print(qi[i]);
}
}catch(IOException e){
}
}
}
以下是data.txt中的数据:
09001    2  9  1  0  3  7  4    26    4:3    1,0     

[/Quote]
也就是如下的第二次输出和第一次相同就是我要的结果了:

import java.io.*;
class Din{

public static void main(String args[]){
try{
File S = new File("Data.txt");
FileInputStream S1 = new FileInputStream(S);
DataInputStream C1= new DataInputStream(S1);


int k;
char qi[] = new char[2000];
//int qi[] = new int[2000];
for(int i=0;i<60;i++){
int te;
k=C1.readByte();
te=(int)k;
if(te==32){}
else {
qi[i]=(char)k;
System.out.print(qi[i]);
}
}
System.out.println("*******************************************************");
for(int i=0;i<60;i++){
System.out.print(qi[i]);
}

}
catch(IOException e){
}
}
}
  • 打赏
  • 举报
回复
我是想把非空格的数据存到qi[]中,而不是让它只显示的没有空格
yanliang_xt 2009-08-30
  • 打赏
  • 举报
回复
控制流程没有协调好。。
yanliang_xt 2009-08-30
  • 打赏
  • 举报
回复

if(te==32){
}
else {
qi[i]=(char)k;
System.out.print(qi[i]);
}


输出:090012910374264:31,0

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧