args[]
- это просто список аргументов - если вы передаете файл, имя файла является аргументом.
Не запускайте это, но попробуйте что-то вроде:
public static void main (String args[])
{
String filename = args[0];
// Read the file content to a String
String fileContent = Files.readString(Paths.get(filename));
// Split on whitespace (this is a regex, whitespace is \\s in Java - could also use " " for just space)
// The '+' here denotes "at least 1" whitespace character - added after the discussion below
String[] elements = fileContent.split("\\s+");
Arrays.sort(elements);
for(String num: args)
System.out.println(num);
}
== Редактировать ==
Если вы хотите, чтобы они сортировались как целые числа, то вы правильно сказали, что приведенное выше обрабатывает их как String
с. Вам нужно проанализировать их как Int
для этого:
publi c stati c void main (String args []) {
String filename = args[0];
// Read the file content to a String
String fileContent = Files.readString(Paths.get(filename));
// Split on whitespace (this is a regex, whitespace is \\s in Java - could also use " " for just space)
// The '+' here denotes "at least 1" whitespace character - added after the discussion below
String[] elements = fileContent.split("\\s+");
int[] intElements = new int[elements.length];
for (int i = 0; i < elements.length; i ++) {
try {
intElements[i] = Integer.parseInt(elements[i]);
} catch (NumberFormatException ex) {
System.err.println("Not a number: " + elements[i]);
}
}
Arrays.sort(intElements);
for(int num: intElements)
System.out.println(num);
}