关于字母排序问题 从键盘输入一些列字母,储存在文件夹中,对其进行升序排列后,存在另一个文件夹中,并显示在屏幕上。怎么实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我是初学者,我来占个座等高手来解答顺便我说说我的想法我觉得应该 先把所有的文件名转化成统一的格式,比如大写或者小写,并比较每个文件夹的头字母的ASIIC码 这是我写的代码,楼主可以看看import java.io.*;import java.util.*;public class wrenwren { static File f=new File("d:\\test.txt"); static File f2=new File("d:\\test2.txt"); public static void main(String args[]) throws Exception { Scanner cs = new Scanner(System.in); System.out.println("输入:"); String a=""; StringBuffer n =new StringBuffer(); while(cs.hasNextLine()){ a=cs.nextLine(); writer(f,a); System.out.println(reader(f)); char[] c=new char[1000]; for(int i=0;i<a.length();i++){ c[i]=a.charAt(i); } for(int j=0;j<a.length();j++){ for(int k=j;k<a.length();k++){ if(c[j]>c[k]){ char b=c[j]; c[j]=c[k]; c[k]=b; } } } for(int m=0;m<a.length();m++){ n.append(c[m]); } String s=String.valueOf(n); writer(f2,s); System.out.println(reader(f2)); } } public static void writer(File fd,String a){ try { FileWriter w=new FileWriter(fd); w.write(a); w.close(); } catch (IOException e) { e.printStackTrace(); } } public static String reader(File f){ String s=""; try { BufferedReader b=new BufferedReader(new FileReader(f)); try { s = b.readLine(); } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } return s; }} 这是在我这边调试的结果输入:dqwertyuioplkmjnhbgvfcxszadqwertyuioplkmjnhbgvfcxsza//输出第一个文件中的内容abcdefghijklmnopqrstuvwxyz//输出第二个文件中的内容,也就是排序过后的内容 import java.util.*;import java.io.*;class Test{ public static void main(String args[]) throws Exception { Scanner scanner = new Scanner(System.in); String tmpText = ""; String finalText = ""; String resultText = ""; File oriFile = null; File sortedFile = null; oriFile = new File("原始.txt"); sortedFile = new File("排序.txt"); if(!oriFile.exists()) oriFile.createNewFile(); if(!sortedFile.exists()) sortedFile.createNewFile(); FileOutputStream oriops = new FileOutputStream(oriFile,true); FileOutputStream sortedops = new FileOutputStream(sortedFile,true); PrintWriter oripw = new PrintWriter(oriops,true); PrintWriter sortedpw = new PrintWriter(sortedops,true); System.out.println("请输入您想要存入文件的字母,以\"*\"结束:"); //输入"*"结束字符的输入 while(!(tmpText = scanner.nextLine()).endsWith("*")) { finalText += tmpText; } finalText += tmpText.substring(0,tmpText.indexOf("*")); oripw.println(finalText); System.out.println("原始数据-》\n"+finalText); char[] tmpChars = finalText.toCharArray(); Arrays.sort(tmpChars); sortedpw.println(tmpChars); oripw.close(); sortedpw.close(); System.out.println("排序后数据-》\n"+new String(tmpChars)); }}aaa,来迟了点 用流可以进行文件读写操作,但是楼上那排序...有个TreeSet,让它实现Comparator接口,里面可以自定义比较方法,用这个过滤,默认就是升序的 import java.util.*;import java.io.*;public class Ex6_7test { public static void main(String arg[])throws IOException { byte letter[]=new byte[10]; System.out.println("输入10个字母:"); System.in.read(letter); System.out.println("原始字符串:"); for(int i=0;i<10;i++) System.out.print((char)letter[i]); FileOutputStream fileOut=new FileOutputStream("c:\\abc.txt"); fileOut.write(letter,0,10); Arrays.sort(letter); System.out.println('\n'+"处理后:"); for(int j=0;j<10;j++) { System.out.print((char)letter[j]); } FileOutputStream Out=new FileOutputStream("c:\\newabc.txt"); Out.write(letter,0,10); }}各位高手,这是小弟自己写的程序,请指点。 java中打印返回值的问题 swing的一个问题 char c = 000000000001;为什么可以编译呢? “.newInstance()”产生的错误,求助!! 请教一个关于RSA加解密算法的问题。 用jdbc odbc桥连接access数据库的初级问题 小问题。。在线等 我想学Java,谁能推荐一本适合的书呢?谢谢! 本地运行网页中嵌入的Java applet 一个设计问题,关于设计模式,装饰模式 or 职责链模式 socket:客户端接收不了服务器的消息 谁给个帮助文档,要能查函数的,我下了个1.6的,输入函数名字查不到,郁闷。
顺便我说说我的想法
我觉得应该 先把所有的文件名转化成统一的格式,比如大写或者小写,并比较每个文件夹的头字母的ASIIC码
import java.io.*;
import java.util.*;
public class wrenwren {
static File f=new File("d:\\test.txt");
static File f2=new File("d:\\test2.txt");
public static void main(String args[]) throws Exception
{
Scanner cs = new Scanner(System.in);
System.out.println("输入:");
String a="";
StringBuffer n =new StringBuffer();
while(cs.hasNextLine()){
a=cs.nextLine();
writer(f,a);
System.out.println(reader(f));
char[] c=new char[1000];
for(int i=0;i<a.length();i++){
c[i]=a.charAt(i);
}
for(int j=0;j<a.length();j++){
for(int k=j;k<a.length();k++){
if(c[j]>c[k]){
char b=c[j];
c[j]=c[k];
c[k]=b;
}
}
}
for(int m=0;m<a.length();m++){
n.append(c[m]);
}
String s=String.valueOf(n);
writer(f2,s);
System.out.println(reader(f2));
}
}
public static void writer(File fd,String a){
try {
FileWriter w=new FileWriter(fd);
w.write(a);
w.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static String reader(File f){
String s="";
try {
BufferedReader b=new BufferedReader(new FileReader(f));
try {
s = b.readLine();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return s;
}
}
输入:
dqwertyuioplkmjnhbgvfcxsza
dqwertyuioplkmjnhbgvfcxsza//输出第一个文件中的内容
abcdefghijklmnopqrstuvwxyz//输出第二个文件中的内容,也就是排序过后的内容
import java.util.*;
import java.io.*;
class Test
{
public static void main(String args[]) throws Exception
{
Scanner scanner = new Scanner(System.in);
String tmpText = "";
String finalText = "";
String resultText = "";
File oriFile = null;
File sortedFile = null;
oriFile = new File("原始.txt");
sortedFile = new File("排序.txt");
if(!oriFile.exists()) oriFile.createNewFile();
if(!sortedFile.exists()) sortedFile.createNewFile();
FileOutputStream oriops = new FileOutputStream(oriFile,true);
FileOutputStream sortedops = new FileOutputStream(sortedFile,true);
PrintWriter oripw = new PrintWriter(oriops,true);
PrintWriter sortedpw = new PrintWriter(sortedops,true);
System.out.println("请输入您想要存入文件的字母,以\"*\"结束:");
//输入"*"结束字符的输入
while(!(tmpText = scanner.nextLine()).endsWith("*"))
{
finalText += tmpText;
}
finalText += tmpText.substring(0,tmpText.indexOf("*"));
oripw.println(finalText);
System.out.println("原始数据-》\n"+finalText);
char[] tmpChars = finalText.toCharArray();
Arrays.sort(tmpChars);
sortedpw.println(tmpChars);
oripw.close();
sortedpw.close();
System.out.println("排序后数据-》\n"+new String(tmpChars));
}
}
aaa,来迟了点
import java.io.*;
public class Ex6_7test
{
public static void main(String arg[])throws IOException
{
byte letter[]=new byte[10];
System.out.println("输入10个字母:");
System.in.read(letter);
System.out.println("原始字符串:");
for(int i=0;i<10;i++)
System.out.print((char)letter[i]);
FileOutputStream fileOut=new FileOutputStream("c:\\abc.txt");
fileOut.write(letter,0,10);
Arrays.sort(letter);
System.out.println('\n'+"处理后:");
for(int j=0;j<10;j++)
{
System.out.print((char)letter[j]);
}
FileOutputStream Out=new FileOutputStream("c:\\newabc.txt");
Out.write(letter,0,10);
}}
各位高手,这是小弟自己写的程序,请指点。