黑马程序员技术交流社区
标题:
今天面试题
[打印本页]
作者:
王训印
时间:
2015-8-9 17:49
标题:
今天面试题
已知文件a.txt文件中的内容为“bcdeadferwplkou”,请编写程序读取该文件内容,并按照自然顺序排序后输出到b.txt文件中。即b.txt中的文件内容应为“abcd…………..”这样的顺序。
我这有点问题,排序结果:bcaddeefklopruw不对,有大神还望指点
package com.wxy002;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Array;
import java.nio.CharBuffer;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
public class Test22
{
public static void main(String[] args)
{
BufferedReader br = null;
BufferedWriter bw =null;
try {
br =new BufferedReader(new FileReader("a.txt"));//因为源文件是文本文件所以用缓冲字符流读取
bw = new BufferedWriter(new FileWriter("b.txt"));//因为目标文件也是文本文件所以用缓冲字符流写入
String str ;
while((str = br.readLine())!=null)
{
bw.write(sort(str));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static String sort(String str)//冒泡排序
{
char[] ch = str.toCharArray();
StringBuilder sb = new StringBuilder();
for (int i = 0 ; i<ch.length-1 ; i++)
{
for(int j =i ; j<ch.length -i -1;j++)
{
if(ch[j] > ch[j+1])
{
char c = ch[j];
ch[j] =ch[j+1];
ch[j+1] = c;
}
}
}
for(int i = 0 ; i<ch.length; i++)
{
sb.append(ch[i]);
}
str = sb.toString();
System.out.println(str);
return str;
}
}
复制代码
作者:
金逗逗
时间:
2015-8-9 18:03
本帖最后由 金逗逗 于 2015-8-9 18:07 编辑
既然你都把字符串转成字符数组了,为什么不用数组工具类Arrays.sort(ch)呢?这样就能自然排序了再者,68行,冒泡排序内循环每次都是从角标0开始的,因为每次循环最大值都是在后面的角标位。
作者:
两木三水
时间:
2015-8-9 21:31
金逗逗 发表于 2015-8-9 18:03
既然你都把字符串转成字符数组了,为什么不用数组工具类Arrays.sort(ch)呢?这样就能自然排序了再者,68行 ...
学习了
作者:
fmi110
时间:
2015-8-9 21:47
金逗逗 发表于 2015-8-9 18:03
既然你都把字符串转成字符数组了,为什么不用数组工具类Arrays.sort(ch)呢?这样就能自然排序了再者,68行 ...
学习了 O(∩_∩)O谢谢!
作者:
rxtm
时间:
2015-8-9 22:13
直接写到treeset中,再拿出来不就行了
作者:
℃葫芦
时间:
2015-8-9 22:18
是学成下山了么
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2