Работа со строками на языке программирования Java. Работа со строками. Оглавление Задание 2 Класс Address 3 Тестирование 4 Вывод 4
Скачать 29.24 Kb.
|
ОглавлениеЗадание 2 Класс Address 3 Тестирование 4 Вывод 4 ЗаданиеДоработать класс адреса, который из полученной строки формата "Страна[d] Регион[d] Город[d] Улица[d] Дом[d] Корпус[d] Квартира" ([d] – разделитель, например, «запятая») выбирает соответствующие части и записывает их в соответствующие поля класса Address. Учесть, что в начале и конце разобранной части адреса не должно быть пробелов. Все поля адреса строковые. Разработать проверочный класс не менее чем на четыре адресных строки. В программе предусмотреть две реализации этого метода: а) разделитель – только запятая (использовать метод split()); Внимание, при разработке нужно учесть, что б) разделитель – любой из символов ,.;- (класс StringTokenizer). import java.util.StringTokenizer; public class Address { private String country, region, city, street, house, part, flat; public Address(String stringToParse, boolean multiDivider){ if(stringToParse == null) throw new NullPointerException(); String[] s; if(multiDivider){ StringTokenizer st = new StringTokenizer(stringToParse, ",.;"); s = new String[st.countTokens()]; int i = 0; while(st.hasMoreTokens()) s[i++] = st.nextToken(); }else{ s = stringToParse.split(","); } if(s.length < 7) throw new IllegalArgumentException("Строка содержит недостаточно данных!"); country = s[0].trim(); region = s[1].trim(); city = s[2].trim(); street = s[3].trim(); house = s[4].trim(); part = s[5].trim(); flat = s[6].trim(); } @Override public String toString() { return "Address: {" + "country = '" + country + '\'' + ", region = '" + region + '\'' + ", city = '" + city + '\'' + ", street = '" + street + '\'' + ", house = '" + house + '\'' + ", part = '" + part + '\'' + ", flat = '" + flat + '\'' + '}'; } public static void main(String[] args) { Address a = new Address("Россия, Санкт-Петербург, Санкт-Петербург, Декабристов, 62, 1, 68", false); Address b = new Address("Россия, Москова, Москва, Моховая, 12, 1, 15", true); Address c = new Address("Беларусь, Минск, минск, Москвовская, 1, 4, 19", true); Address d = new Address("Россия, Московская область, Мытищи, Строительная, 12, 2, 104", false); System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); } } Класс Address Address: {country = 'Россия', region = 'Санкт-Петербург', city = 'Санкт-Петербург', street = 'Декабристов', house = '62', housing = '1', flat = '68'} Address: {country = 'Россия', region = 'Москова', city = 'Москва', street = 'Моховая', house = '12', housing = '1', flat = '15'} Address: {country = 'Беларусь', region = 'Минск', city = 'минск', street = 'Москвовская', house = '1', housing = '4', flat = '19'} Address: {country = 'Россия', region = 'Московская область', city = 'Мытищи', street = 'Строительная', house = '12', housing = '2', flat = '104'} Тестирование ВыводПо ходу данной практической работы я научился работать со строками StringBuilder, String. |