Эта программа предназначена для запроса пользователю адресной информации. Идентифицируйте адрес, который будет первым по почтовому индексу, а затем распечатайте этот адрес.Проблемы с Integer и ArrayList
У меня возникает пара вопросов. Когда я пытаюсь присвоить значение int
переменной квартиры, я получаю сообщение об ошибке. То же самое с частью zip-кода. Как только минимальное значение будет найдено, я хочу получить индекс минимального значения, чтобы я мог печатать одинаковое значение индекса для каждого arraylist
.
Может кто-нибудь указать мне в правильном направлении или дать мне хорошую ссылку для этого? Я думаю, что я просто путаю несколько вещей.
package newchapter7;
import java.util.*;
/**
*
* @author Crazy
*/
public class Address {
ArrayList<Integer> houses = new ArrayList<>();
ArrayList<String> streets = new ArrayList<>();
ArrayList<Integer> apts = new ArrayList<>();
ArrayList<String> cities = new ArrayList<>();
ArrayList<String> states = new ArrayList<>();
ArrayList<Integer> zips = new ArrayList<>();
int minValue;
/**
* Adds a house number to the address
* @param house house number
*/
public void addHouse(int house)
{
houses.add(house);
}
public ArrayList<Integer> getHouse()
{
return houses;
}
/**
* Adds a street name to the address
* @param street street name
*/
public void addStreet(String street)
{
streets.add(street);
}
public ArrayList<String> getStreet()
{
return streets;
}
/**
* constructor to add an apartment number that equals 0
*/
public void addApt()
{
}
/**
* Adds an apartment number to the address
* @param aptNbr apartment number
*/
public void addApt(int aptNbr)
{
apts.add(aptNbr);
}
public ArrayList<Integer> getAptNbrs()
{
return apts;
}
/**
* Adds a city to the address
* @param city city
*/
public void addCity(String city)
{
cities.add(city);
}
public ArrayList<String> getCity()
{
return cities;
}
/**
* Adds a state to the address
* @param state state
*/
public void addState(String state)
{
states.add(state);
}
public ArrayList<String> getState()
{
return states;
}
/**
* Adds a zip code to the address
* @param zip zip code
*/
public void addZip(int zip)
{
zips.add(zip);
}
public ArrayList<Integer> getZip()
{
return zips;
}
public int arrValue()
{
minValue = zips.indexOf(Collections.min(zips));
return minValue;
}
}
Главная
package newchapter7;
import java.util.*;
public class NewChapter7 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Address addy = new Address();
for (int i = 0; i < 3; i++)
{
System.out.print("Please enter a house number: ");
int house1 = in.nextInt();
addy.houses.add(house1);
System.out.print("Please enter the street name: ");
String street1 = in.next();
addy.streets.add(street1);
System.out.print("Please enter an apartment number if applicable: ");
int apartment;
apartment = in.nextInt();
addy.apts.add(apartment);
if (apartment != 0)
{
addy.apts.add(apartment);
}
else
{
addy.apts.add(0);
}
System.out.print("Please enter the city name: ");
String city2 = in.nextLine();
addy.cities.add(city2);
System.out.print("Please enter the state name: ");
String states2 = in.nextLine();
addy.states.add(states2);
System.out.print("Please enter the zip code: ");
int zipC = in.nextInt();
addy.zips.add(zipC);
}
}
}
Это домашнее задание. Я думаю, что я немного запутал материал, и даже если это сработает, я хотел бы изучить более эффективный способ выполнить ту же задачу.
Ошибка
Please enter a house number: 772
Please enter the street name: Apple Drive
Exception in thread "main" java.util.InputMismatchException
Please enter an apartment number if applicable:
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at newchapter7.NewChapter7.main(NewChapter7.java:32)
Java Result: 1
BUILD SUCCESSFUL (total time: 21 seconds)
Назначение:
Реализовать класс Address. Адрес имеет номер дома, улицу, дополнительный номер квартиры, город, штат и почтовый индекс. Поставьте двух конструкторов: один с номером квартиры и один без. Поставьте метод печати, который печатает адрес с улицы на одной строке, а также город, штат и почтовый индекс на следующей строке. Поставка метода public boolean приходитBefore (Address other), который проверяет, идет ли этот адрес перед другим, когда адреса сравниваются почтовым кодом.
Требуется, чтобы это переместилось в переполнение стека. – mbnew
Если у вас есть ошибка или исключение, пожалуйста, сообщите нам все сообщение. –
Реализация 'public int arrValue()' выглядит странно для меня. Зачем возвращать индекс? Вы не называете этот метод, хотя, возможно, его нужно полностью удалить? –