Aar*_*nke 5 java arrays sorting string
在我的Java程序中,我有以下代码:
String[] states = readFile("States.txt");
System.out.println(String.join(" ", states));
System.out.println(states.length);
Arrays.sort(states);
System.out.println(String.join(" ", states));
System.out.println(states.length);
Run Code Online (Sandbox Code Playgroud)
奇怪的是,呼吁Arrays.sort()从java.util.Arrays原因很多项目从列表中删除.当我运行上面的代码时,这是输出:
FL GA SC NC VA MD NY NJ DE PA CT RI MA VT NH ME AL TN KY WV OH MI MS AR MO KS NE IN IL WI MN LA TX OK IA SD ND NM CO WY ID AZ UT NV MT CA OR WA AL HI
50
AL AL AR AZ CA CO CT DE FL GA HI
50
Run Code Online (Sandbox Code Playgroud)
关于这里发生了什么,我非常非常困惑.为什么只打印出11件商品?正在Arrays.sort()删除物品?为什么会Arrays.sort()这样?为什么阵列的大小仍然存在50?这些物品是否被清空或是什么?
我假设我的readFile()方法工作正常,因为未排序的数组打印出来很好......
public static String[] readFile(String FileName) {
char[] cbuf = new char[200];
String[] array;
FileReader fr;
try {
fr = new FileReader(FileName);
try {
fr.read(cbuf);
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
String all = new String(cbuf);
array = all.split("\n");
return array;
}
Run Code Online (Sandbox Code Playgroud)
我正在阅读的文件:https://nofile.io/f/8TO3pdnmS3W/States.txt MD5以8b961b5开头
文件末尾的换行符,特别是文件中最后一个条目“ HI”之后的换行符似乎导致了问题。可以在readFile函数中使用以下方法解决:
array = all.trim().split("\n");