Я пытаюсь использовать StringTokenizer для установки запятой в качестве разделителя с строками из файла, каждый из которых состоит из zipcode и city (ex 01221, Washington, DC), но я не хочу, чтобы вторая запятая быть разделителем, поскольку он является частью названия города. У меня есть 2 класса, в которых я читаю в почтовом индексе и имени города, но я не уверен, как правильно использовать токенизатор для установки почтового индекса и города. Я хочу вернуть 1 массив каждого почтового индекса и города из каждого класса, поэтому я не хочу объединять их в один класс. Я также не уверен, должен ли я помещать токенизатор в свой основной метод или нет.Использование StringTokenizer
public static String[] getZipCodes (File zips, Scanner hi, int d)
{
//creating array of zip codes with the length of the number of lines
String[] zipCodes=new String[d];
//Loops through each zip code to fill the array
for (int i=0; i<d; i++)
{
zipCodes[i]=hi.next();
System.out.println(zipCodes[i]);
}
return zipCodes;
}
public static String[] getCities (File zips, Scanner hi, int d)
{
//creating array of cities
String[] cities=new String[d];
//fills array with city names, parallel to its zip code
for (int i=0; i<d; i++)
{
hi.next();
cities[i]=hi.next();
hi.nextLine();
}
return cities;
}
Вот основной метод:
public static void main(String[] args) throws IOException {
File zips=new File("ZipCodesCity.txt");
//Scanner to count number of lines in file
Scanner in=new Scanner(zips);
//Counting number of zip codes
int codenum=0;
while (in.hasNextLine())
{
codenum++;
}
//making a second scanner to read in the zip codes
Scanner hi= new Scanner(zips);
//initializing array of zip codes
String[]zipCodes=getZipCodes(zips, hi, codenum);
//Tokenizer
StringTokenizer wrd=new StringTokenizer(hi.nextLine(), ",");
}
Я добавил тесную скобу, которая, казалось, отсутствовала; если это было неправильно, переименуйте. Если это было правильно, отметьте этот комментарий устаревшим. –
Если вам нужно разбить строку на две части во всех случаях, рассмотрите возможность использования String.indexOf() и String.substring(). Tokenizer полезен, когда количество подстроки не является предикативным (кстати, вы можете использовать String.split() для выполнения той же операции). –
Я не уверен, как я мог бы взять indexOf (0,4) для каждой строки, так как я должен был бы сказать in.next() и indexOf –