15-12-06 时写的答案
--------------------------------------
我是新手 Java的语法还没学习完
所以这个代码采取的是一个很取巧的形式
思路是字符串的比较是比较第一个不相等的unicode码
所以直接用Arrays.sort()之后 结果为
61.53.231.249
61.54.231.245
61.54.231.246
61.54.231.48
61.54.231.9
再采用冒泡比较长度
String s1 = "61.54.231.245 61.54.231.9 61.54.231.246 61.54.231.48 61.53.231.249";
FileWriter fe = new FileWriter("G:/a.txt");
fe.write(s1);
fe.flush();
fe.close();
String string[] = s1.split(" ");
for (int i = 0; i < string.length; i++) {
System.out.println(string[i]);
}
System.out.println("-----------------------");
Arrays.sort(string);
// 冒泡排序
for (int i = 1; i < string.length; i++) {
for (int j = 1; j < string.length - i; j++) {
if (string[j].length() > string[j + 1].length()) {
String str;
str = string[j];
string[j] = string[j + 1];
string[j + 1] = str;
}
}
}
for (int i = 0; i < string.length; i++) {
System.out.println(string[i]);
}
}
----------------------------------------------------------------------------------------------------------
16-02-12
学了点IO输出 以及之前不会的东西
现在重写这题答案
-------------------------------------
package Test;
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Comparator;
import java.util.TreeSet;
/**
*
把以下IP存入一个txt文件,编写程序把这些IP按数值大小,从小到达排序并打印出来。 61.54.231.245 61.54.231.9
* 61.54.231.246 61.54.231.48 61.53.231.249
*/
class MyCompar implements Comparator<String> {
public int compare(String o1, String o2) {
String[] o11 = o1.split("\\.");
String[] o22 = o2.split("\\.");
// 比较如果不相等 进行排序
for (int i = 0; i < o11.length; i++) {
if (o11[i].equals(o22[i]) == false) {
Integer a = Integer.valueOf(o11[i]);
Integer b = Integer.valueOf(o22[i]);
return a.compareTo(b);
}
}
return 0;
}
}
public class Test063 {
public static void main(String[] args) throws IOException {
DataOutputStream out = new DataOutputStream(new BufferedOutputStream(
new FileOutputStream(new File("F:/IOtest/ip.txt"))));
// 将文件写入 \r\n实现换行
out.writeBytes("61.54.231.245 \r\n 61.54.231.9 \r\n61.54.231.246 \r\n61.54.231.48 \r\n61.53.231.249");
out.close();
RandomAccessFile in = new RandomAccessFile("F:/IOtest/ip.txt", "r");
// 给构造器传指定的比较器
TreeSet<String> set = new TreeSet<String>(new MyCompar());
String s;
while ((s = in.readLine()) != null) {
// 将按行读出的数据加入set 使用String.trim()忽略首尾空白
set.add(s.trim());
}
in.close();
for (String string : set) {
System.out.println(string);
}
}
}