Извините за название немного запутанным. Что мне нужно сделать, это прочитать текстовый файл с кучей городов и штатов в отдельных строках, как это:
Salem, Oregon
St. George, Utah
Augusta, Maine
Portland, Maine
Jefferson City, Missouri
Kansas City, Missouri
Portland, Oregon
Salt Lake City, Utah
А затем сделайте вывод из этого следующим образом:
Maine: Augusta, Portland
Missouri: Jefferson City, Kansas City
Oregon: Portland, Salem
Utah: Salt Lake City, St. George
Мне нужно сделать это одним методом и отправить в многомерный массив или массив, где первое измерение будет состояниями, а второе измерение - соответствующими городами.
Я предположил, что самый простой способ сделать это - создать токены для каждого города и штата, но я не знаю, как правильно их отсортировать после этого. Я дошел до того, что создал токены, а затем просто перепечатал их на отдельные строки, что является ничем иным, как бесполезным.
Вот мой текущий код:
import java.io.File;
import java.util.Scanner;
import java.util.Formatter;
import java.io.FileNotFoundException;
import java.util.Arrays;
public class Munge
{
private String inFileName, outFileName;
private Scanner inFile;
private Formatter outFile;
private int line = 0;
private String[] data;
public Munge(String inFileName, String outFileName)
{
this.inFileName = inFileName;
this.outFileName = outFileName;
data = new String[100];
}
public void openFiles()
{
try
{
inFile = new Scanner(new File(inFileName));
}
catch(FileNotFoundException exception)
{
System.err.println("File not found.");
System.exit(1);
}
catch(SecurityException exception)
{
System.err.println("You do not have access to this file.");
System.exit(1);
}
try
{
outFile = new Formatter(outFileName);
}
catch(FileNotFoundException exception)
{
System.err.println("File not found.");
System.exit(1);
}
catch(SecurityException exception)
{
System.err.println("You do not have access to this file.");
System.exit(1);
}
}
public void readRecords()
{
while(inFile.hasNext())
{
data[line] = inFile.nextLine();
System.out.println(data[line]);
line++;
}
}
public void writeRecords()
{
for(int i = 0; i < line; i++)
{
String tokens[] = data[i].split(", ");
Arrays.sort(tokens);
for(int j = 0; j < tokens.length; j++)
outFile.format("%s\r\n", tokens[j]);
}
}
public void closeFiles()
{
if(inFile != null)
inFile.close();
if(outFile != null)
outFile.close();
}
}
Я действительно понятия не имею, что я делаю, и мое понимание Java и любого программирования чрезвычайно ограничено. Я занимаюсь этим уже слишком много часов. Если кто-нибудь может мне помочь, я был бы очень признателен.