大家帮我看看程序那儿错了??

tondayong1981 2006-04-04 07:16:11

我要实现文本文件中的每一行的单词逆序
比如
I like china!!!
I go to park
->
china!!! like I
park to go I
我好象就是回车和换行的时候有错,大家帮我看看。



import java.io.*;
import java.util.HashMap;
public class FileManipulation
{
public static void main(String[] args)
{
int j;
FileReader fr=null;
FileWriter fw=null;
BufferedReader br=null;
BufferedWriter bw=null;
HashMap hm=new HashMap();
String str="";
char c='1';

try
{
fr=new FileReader("in.txt");
fw=new FileWriter("out.txt");
br=new BufferedReader(fr);
bw=new BufferedWriter(fw);
String s=br.readLine();
// 处理每一行数据
while(s!=null)
{

j=1;
for(int i=0;i<s.length();i++)
{
c=s.charAt(i);

//如果不为空格和新行就把前面的所有字符连接起来
if(c!=32)
{
str=str+String.valueOf(c);
//System.out.println(s.charAt(7));

}


//将单词放入HashMap,并将将str置空
else
{

hm.put(new Integer(j),new String(str));
j++;
str="";


}




}
//处理最后一个单词
hm.put(new Integer(j),new String(str));
//将单词逆序写入到文件中
for(int i=hm.size();i>=1;i--)
{

bw.write(String.valueOf(hm.get(new Integer(i)))+" ");

}

bw.newLine();
//遇到新行,将HashMap置空
hm.clear();
//System.out.println(hm.get(new Integer(2)));
s=br.readLine();

}


}catch(FileNotFoundException e)
{
e.printStackTrace();
}
catch(IOException ex)
{
ex.printStackTrace();
}
finally

{
try
{
if(bw!=null)
bw.close();
}catch(IOException e)
{
e.printStackTrace();
}
}
}
}
...全文
182 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lydvqq 2006-04-04
  • 打赏
  • 举报
回复
因为你处理最后一个单词时str是还有值的.
lydvqq 2006-04-04
  • 打赏
  • 举报
回复
while(s!=null)
{
System.out.println(s);
j=1;
String str = "";//放到这里就OK了
for(int i=0;i<s.length();i++)

62,629

社区成员

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

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