字符串的两种逆序输出问题。

碎冰点 2012-09-23 08:27:15
我碰到一个问题,假如有个a.txt,里面有如下字符串:
Course CST230
Hello
Your name
Good bye
现在需要逆序输出output1为:
eyb dooG
eman rouY
olleH
032TSC esruoC
接着output2为:
esrouC 032TSC
olleH
rouY eman
dooG eyb
那么我的解决方法是:
public class test extends Object implements java.io.Serializable {
public static void main(String[] args) throws IOException {
BufferedReader input = new BufferedReader(new FileReader("a.txt"));
String line4 = null;
BufferedReader input4 = new BufferedReader(new FileReader("a.txt"));
BufferedWriter ReverseOriginal4 = new BufferedWriter(new FileWriter("output4.txt"));
while((line4=input4.readLine())!=null){
String s = line4;
StringBuffer buff = new StringBuffer(s);
ReverseOriginal4.write(buff.reverse().toString());
ReverseOriginal4.newLine();
}
ReverseOriginal4.flush();
ReverseOriginal4.close();
ReverseOriginal4 = null;
input4.close();
可是这样输出的结果为:
032TSC esruoC
olleH
iL gnefiuR
eyb dooG
因为基础不扎实,output1我想用字符串数组做,但是失败了,因为write不能写字符串数组,我的代码如下:
BufferedReader input2 = new BufferedReader(new FileReader("a.txt"));
BufferedWriter ReverseOriginal2 = new BufferedWriter(new FileWriter("output2.txt"));
String[] data = new String[10];
while((line2=input2.readLine())!=null){
int j = 0; String s = line2;
StringBuffer buff = new StringBuffer(s);
data[j] = buff.reverse().toString();
j++;
}
ReverseOriginal2.write(data[]);
ReverseOriginal2.newLine();
ReverseOriginal2.flush();
ReverseOriginal2.close();
ReverseOriginal2 = null;
input2.close();
这里的write就报错了,希望大家对两种逆序输出做些详细的指导和讲解,感觉output2更难一些,谢谢大家!
...全文
302 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
清墨无痕 2012-09-23
  • 打赏
  • 举报
回复
这个可以先把a,txt文档里的内容放在一个字符串数组中(根据每行读取)
BufferedReader reader=new BufferedReader(new InputStreamReader(new FileInputStream(new File(path))));

String str;
int count=0;
//一次读取一行字符串,直至读取不到数据
while((str=reader.readLine())!=null)
{
System.out.println(str);
count++;

}
BufferedReader reader1=new BufferedReader(new InputStreamReader(new FileInputStream(new File(path))));
data=new String[count];
int i=0;
String str1;
while((str1=reader1.readLine())!=null)
{

data[i]=str1;
i++;

}
剩下的就是对数组中的每个字符串进行发输出,这个单字符串发输出楼主应该没有问题吧
huntor 2012-09-23
  • 打赏
  • 举报
回复
import java.nio.charset.Charset;
import java.nio.file.*;
import java.io.*;
import java.util.*;

public class Example {
public static void main(final String[] args){
try(PrintWriter out = new PrintWriter(new File("D:/Temp/b.txt"))){
Path file = Paths.get("D:/Temp/a.txt");
List<String> lines = Files.readAllLines(file, Charset.defaultCharset());
Collections.reverse(lines);
for(String line : lines){
out.println(new StringBuilder(line).reverse());
}
} catch (java.io.IOException xe) {
// handle exception
}
}
}

需要Java 7

62,614

社区成员

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

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