Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Java / JavaScript


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Java/JavaScript

Выпуск № 421
от 24.08.2007, 19:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 372, Экспертов: 32
В номере:Вопросов: 1, Ответов: 1


Вопрос № 98865: Здравствуйте эксперты! Я только начинаю всой путь в мире Java, отучился первый семестр. У меня к вам, по вашим меркам, я полагаю, очень простой вопрос, а точнее просьба. Помогите мне, пожалуйста, со следующим кодом. Не могу до конца найти ош...

Вопрос № 98.865
Здравствуйте эксперты!

Я только начинаю всой путь в мире Java, отучился первый семестр. У меня к вам, по вашим меркам, я полагаю, очень простой вопрос, а точнее просьба. Помогите мне, пожалуйста, со следующим кодом. Не могу до конца найти ошибки:
public class UserList
{

public static void main(String[] args) throws IOException
{
string str1, str2 = "username";
int index;
int initialCapacity = 10;
BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));
ArrayList users = new ArrayList();

System.out.print("Enter a user name: ");
str1 = dataIn.readLine();

while(str1.length() > 0)
{
if(str1 == str2)
System.out.println("That user name is NOT allowed!");
else
{
if(users.size() == initialCapacity)
{
System.out.println("List is full!");
System.out.println("Last entry is "+users.get(initialCapacity));
}
else
if(!users.contains(str1))
{
users.add(str1);
System.out.println("User \""+str1+"\" added to user list.");
}
else
System.out.println("User \""+str1+"\" already in user list.");
}
System.out.print("\nEnter a user name: ");
str1 = dataIn.readLine();
}

System.out.println("Program complete.");
}
}

Заранее благадарю.

Иннокентий
Отправлен: 18.08.2007, 23:19
Вопрос задал: Игнатьев Иннокентий (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Алексей Демаков
Здравствуйте, Игнатьев Иннокентий!

Исправленный код в приложении.

1. Добавлены импорты
import java.io.*;
import java.util.ArrayList;
без них нельзя использовать короткой имя классов из других пакетов.

2. Исправлено мя типа string -> String
String str1, str2 = "username";

3. Исправлена проверка на конец данных. Если входных данных больше нет, метод readLine() вернет null, null.length() ведет к NullPointerException, поэтому проверять надо так:
while(str1 != null)

4. Строки (да и вообще все объекты) проверяются на равенство с помощью метода equals. Сравнение x == y проверяет, на один и тот же объект ссылаются x и y или на разные. То есть, результат будет false, даже если x и y ссылаются на одинаковые (имеющие одинаковое содержимое) объекты.
if(str2.equals(str1))

5. Элеменсты писка нумеруются от 0 до L-1, где L - длина списка. То есть, последний элемент имеет индекс L-1, а не L.
users.get(initialCapacity-1)

6. Ещё экранирующие поправил, но не знаю,так было в исходном тексте или при публикации добавились. Лучше текст программы писать в приложении.

Приложение:

Ответ отправил: Алексей Демаков (статус: Студент)
Ответ отправлен: 18.08.2007, 23:46
Оценка за ответ: 5
Комментарий оценки:
Приветствую Вас Алексей Демаков,

Выражаю Вам большую благодарность за Вашу помощь. Ваш код мне очень помог. Так же, благодарю Вас за Ваши комментарии, все стало намного понятней.

Иннокентий Игнатьев


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.56 beta от 20.08.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное