![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 20.09.2011
Сообщений: 17
|
![]()
уважаемые помогите упростить программу:надо сделать чтобы меньше памяти использовалось
Вот условие:Перед строкой содержащей слово, являющееся последним словом по алфавиту во всем тексте, вставить строку “Last word!” public static void main(String[] args) { String[] str = new String[25]; String slovo; int count = 0; int pos = 0; Scanner cin = new Scanner(System.in); System.out.print("Введите текст:\n"); for (int i = 0; i < 25; i++, count++) { str[i] = cin.nextLine(); boolean flag = str[i].equals(""); if (flag == true) { break; } } StringTokenizer c = new StringTokenizer(str[0], " "); int h = c.countTokens(), a = 0; String[] word1 = new String[h]; while (c.hasMoreTokens()) { word1[a] = c.nextToken(); a++; } for (int i = 1; i < count; i++) { StringTokenizer s = new StringTokenizer(str[i], " "); int p = s.countTokens(), k = 0; String[] word = new String[p]; while (s.hasMoreTokens()) { word[k] = s.nextToken(); k++; } String m1; m1 = word[0]; for (int l = 1; l < k; l++) { int is = m1.compareTo(word[l]); if (is < 0) { m1 = word[l]; } } if ((m1.compareTo(m1)) < 0) { slovo = m1; pos = i; } } String ptr = "Last word"; String[] str1 = new String[count + 1]; for (int i = 0; i < pos; i++) { str1[i] = str[i]; } str1[pos] = ptr; for (int i = pos + 1; i < count + 1; i++) { str1[i] = str[i - 1]; } for (int v = 0; v < count + 1; v++) { System.out.println(str1[v]); } } } |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]() Код:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Во-первых, используйте тег [CODE] (кнопка с символом решётки - #)
Во-вторых, чем продиктована потребность в такой экономии памяти? Тут ведь её всего ничего используется. В-третьих, StringTokenizer не рекомендуется к использования, как устаревший класс, вместо него рекомендуют использовать метод split класса String, либо java.util.regex. В-четвёртых, использование Scanner для простого чтения строк слегка нерационально, в данном случае можно воспользоваться BufferedReader или Console из java.io. Ещё можно использовать ArrayList из java.util, что значительно упростит работу с массивом: Код:
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 20.09.2011
Сообщений: 17
|
![]()
Спосибо большое!!!
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
оптимизация программы | Arsenx777 | Работа с сетью в Delphi | 1 | 28.08.2011 14:00 |
Оптимизация программы | 0479 | Помощь студентам | 7 | 09.03.2011 17:15 |
Оптимизация программы | Lenya | Помощь студентам | 2 | 05.01.2011 18:56 |
Оптимизация программы!!! | $T@LKER | Общие вопросы Delphi | 10 | 08.08.2010 21:23 |