public static void main(String[] args)
{
String file = "";
Scanner a = null;
try
{
a = new Scanner(new File("names.txt"));
}
catch (FileNotFoundException e)
{
System.out.println("There was an error with your file");
e.printStackTrace();
}
while(a.hasNextLine())
{
file = file +a.nextLine();
file +="\n";
}
System.out.println(file);
String name [] = {file};
int i;
for(i=0;i<name.length;i++)
{
for(int j=i+1;j<name.length;j++)
{
if(name[i].substring(0,1).compareTo(name[j].substring(0,1))<0)
{
String temp = name[i];
name[i] = name[j];
name[j] = temp;
}
}
}
for(i = 0;i < name.length;i++)
System.out.println(name[i]);
참고 :배열이 알파벳순으로 정렬되지 않는 이유는 무엇입니까?
John
Rachel
Peter
Illyana
Erik
Jimmy
Dan
Ken
Guile
Barbara
출력은 다음과 같습니다 : 나는 OS X를 사용하고
John
Rachel
Peter
Illyana
Erik
Jimmy
Dan
Ken
Guile
Barbara
John
Rachel
Peter
Illyana
Erik
Jimmy
Dan
Ken
Guile
Barbara
**, 즉 문제의 원인이 될 수 있습니다 다음과 같이 파일의 내용은?
루틴이 이름 배열을 읽을 것으로 예상되지만 실제로는 파일에 줄 바꿈을 넣어야합니다. 구형 Mac OS를 사용했다면 \ n (Linux, 현대 Mac OS) 또는 \ r \ n (Windows) 대신 기본적으로 행 끝으로 \ r을 사용했기 때문에 문제가 될 수있었습니다. 코드가 한 줄로 모든 이름을 읽는 것처럼 보이므로 정렬 할 항목이 없습니다. –
배열에 항목이 하나만있는 것 같습니다. 새 줄이있는 단일 문자열입니다. 단일 항목을 사용하여 배열을 정렬하면 결과와 동일한 배열이 생성됩니다. –