JAVA读取文件中的单项名,再进行单个名字排序的问题

cosPC 2014-02-26 03:33:27
如题,这个小DEMO就是读出单条记录,存在字符串数组中,如果定义字符串数组大小是644(正好为记录的个数),就能正常运行,如果改成1000,就不能正常运行了,就是遇见这种情况改怎么修改代码,在不知道记录总数的情况下不报错,动态数组?

另猜测一下,1000个字符串数组大小时,只有644个能存入值,剩下的部分都是NULL?这个NULL算是什么类型的值,感觉不太像字符串类型的,我有个想法就是把所有NULL的值先替换成ZZZZZ(不用的值),然后在输出的时候过滤掉ZZZZZ的值,不知道行不行,代码不会写。



package com.fifth.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;

public class CopyOfSortByABC1 {

static String[] str = new String[1000];
static int i = 0;

public static void readFromFile(String filePath) {


try
{
String encoding = "GBK";
File file = new File(filePath);
if(file.isFile() && file.exists())
{
InputStreamReader read = new InputStreamReader(
new FileInputStream(file),encoding);
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
while((lineTxt = bufferedReader.readLine()) != null)
{

//str[i] = "\"" + lineTxt + "\",";
str[i] = lineTxt;
i++;

//System.out.println("\"" + lineTxt + "\",");
}
read.close();
}
else
{
System.out.println("File not found");
}

}
catch(Exception e)
{
System.out.println("File read error");
e.printStackTrace();
}

}

public static void sortStringArray(String[] arrStr) {
String temp;
for (int i = 0; i < arrStr.length; i++) {
for (int j = arrStr.length - 1; j > i; j--) {
if(arrStr[i].compareTo(arrStr[j])>0){
temp = arrStr[i];
arrStr[i] = arrStr[j];
arrStr[j] = temp;
}
}
}
}


public static void main(String[] args) {
String filePath = "E:\\txt\\nisChart.txt";
readFromFile(filePath);
sortStringArray(str);
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}

/*
for(int i = 0; i < str.length;i++)
{
//if(str[i] != null)
System.out.println(str[i]);
}
*/
}


}
...全文
162 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
benben94562581 2014-02-26
  • 打赏
  • 举报
回复
arrStr[i].compareTo(arrStr[j])>0会抛空指针的。。。 起始可以放在list,这样就不必指定大小了,而且里面存的都是string,可以直接用Collections.sort(list)来排序

62,620

社区成员

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

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