Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поменять местами слова в предложении 
:(
    Опции темы
arinka1220
Дата 24.12.2013, 04:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 24.12.2013

Репутация: нет
Всего: нет



Поменять местами  минимальное  и максимальное(по длине) слово в предложении.Посмотрите плиз что не так.
Код

package javaapplication40;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;



public class JavaApplication40 {

    public static void main(String[] args) {
   
        Set<String> set = new TreeSet<String>(new Comparator<String>() {
 
            @Override
            public int compare(String o1, String o2) {
                return o1.length() - o2.length();
            }
        });
 
        ArrayList<String> list = new ArrayList<>();
 
        Scanner scanner = new Scanner(System.in);
        System.out.println ("Введите строку: ");
        String word = null;
        while (!"".equals(word = scanner.nextLine())) {
            set.add(word);
            list.add(word);
        }
        String[] arr = set.toArray(new String[0]);
        String max = arr[arr.length - 1];
        String min = arr[0];
        int iMax = list.indexOf(max);
        int iMin = list.indexOf(min);
        list.set(iMax, min);
        list.set(iMin, max);
 
        StringBuilder stringBuilder = new StringBuilder();
        for (String string : list) {
            stringBuilder.append(string).append(" ");
        }
        System.out.println ("Полученная строка: ");
        System.out.println(stringBuilder.toString().trim());
    }
 
}
 

PM MAIL   Вверх
Stolzen
Дата 24.12.2013, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 23
Всего: 48



похоже, что у вас меняются местами первое и последнее слово


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
Magistrus
Дата 24.12.2013, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Жив
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 14.6.2006
Где: г. Одесса

Репутация: нет
Всего: 1



Неправильное понимание работы сканера nextLine()  возврашает строку, а не слово.

Код

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
import java.util.TreeSet;

public class JavaApplication40
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Введите текст: ");
        while (scanner.hasNext())
        {
            String stringLine = scanner.nextLine(); 
            String[] words = stringLine.split(" ");
            TreeSet<String> set = new TreeSet<String>(new Comparator<String>()
                    {
                        @Override
                        public int compare(String o1, String o2)
                        {
                            return o1.length() - o2.length();
                        }
                    });

            List<String> list = new ArrayList<String>(words.length);
            for (String word: words)
            {
                set.add(word);
                list.add(word);
            }
            String max = set.last();
            String min = set.first();
            int iMax = list.indexOf(max);
            int iMin = list.indexOf(min);
            list.set(iMax, min);
            list.set(iMin, max);

            StringBuilder stringBuilder = new StringBuilder();
            for (String string : list)
            {
                stringBuilder.append(string).append(" ");
            }
            System.out.println("Полученная строка: ");
            System.out.println(stringBuilder.toString().trim());
        }
    }
}



Добавлено @ 13:18
Еще вот такой вариант без лишнего сета и компортара. 
Код

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class JavaApplication40
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Введите строку: ");
        while (scanner.hasNext())
        {
            String stringLine = scanner.nextLine();
            String[] words = stringLine.split(" ");
            int vMax = Integer.MIN_VALUE;
            int vMin = Integer.MAX_VALUE;
            int iMax = Integer.MIN_VALUE;
            int iMin = Integer.MAX_VALUE;
            List<String> list = new ArrayList<String>(words.length);
            for (int i = 0; i < words.length; i++)
            {
                String word = words[i];
                if (word.length() > vMax)
                {
                    iMax = i;
                    vMax = Math.max(vMax, word.length());
                }
                if (word.length() < vMin)
                {
                    iMin = i;
                    vMin = Math.min(vMin, word.length());
                }
                list.add(word);
            }
            String min = list.get(iMin);
            String max = list.get(iMax);

            list.set(iMax, min);
            list.set(iMin, max);

            StringBuilder stringBuilder = new StringBuilder();
            for (String string : list)
            {
                stringBuilder.append(string).append(" ");
            }
            System.out.println("Полученная строка: ");
            System.out.println(stringBuilder.toString().trim());
        }
    }
}


Это сообщение отредактировал(а) Magistrus - 24.12.2013, 13:19
--------------------
~ вот такая вот загагулина ~ 
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0428 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.