С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 20.03.2019
Сообщений: 12

Слова из файла с максимальной длиной в список

17.04.2019, 11:18. Показов 1062. Ответов 2

Студворк — интернет-сервис помощи студентам
В задаче ниже речь идет о связных списках, реализовать которые необходимо.

Дан текстовый файл. Распечатать слова, имеющие максимальную длину (с повторениями, если они есть). Необходимо все слова из файла поместить в список. Далее пройти по этому списку, запоминая максимальную длину слова и помещая такие слова во второй список (если встречается новое более длинное слово, то второй список очищается и в него помещается новое самое длинное слово).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.04.2019, 11:18
Ответы с готовыми решениями:

Считать текст из файла и вывести на экран все слова с максимальной длиной
Напишите программу, которая считывает текст из файла и выводит на экран все слова, с максимальной длиной. Необходимо предусмотреть случай,...

Поменять местами слова с максимальной и минимальной длиной при условии, что такие слова единственные
Поменять местами слова с максимальной и минимальной длиной при условии, что такие слова единственные. Текст вводит пользователь.

Поменять местами слова с максимальной и минимальной длиной
Здравствуйте, нужно решение задачи: Поменять местами слова с максимальной и минимальной длиной при выполнения условия, что такие слова...

2
 Аватар для InvalidCode
295 / 470 / 86
Регистрация: 26.02.2018
Сообщений: 931
Записей в блоге: 2
17.04.2019, 11:37
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package help;
 
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
 
/**
 *
 * @author i++
 */
public class Help {
        
    public static void main(String[] args) {
        try {
            Scanner sc = new Scanner(new File("yourFile.txt"));
            String s = "";
            while(sc.hasNext()){
                s += sc.nextLine() + "\n";
            }
            ArrayList<String> first = wordArrayNotProbelStr(s);
            ArrayList<String> second = new ArrayList<String>();
            int max = 0;
            for(int i = 0; i < first.size(); i++){
                if(first.get(i).length() > max){
                    second = new ArrayList<String>();
                    max = first.get(i).length();
                }
                else if(first.get(i).length() == max){
                    second.add(first.get(i));
                }
            }
            for(int i = 0; i < second.size(); i++){
                System.out.println(second.get(i));
            }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(Help.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 
    private static ArrayList<String> wordArrayNotProbelStr(String s){
        ArrayList<String> a = null;
        String ss = "";
        if(!"".equals(s)){
            a = new ArrayList<String>();
            for(int i = 0; i < s.length(); i++){
                String s1 = s.substring(i, i+1);
                if(s1.equals(" ") || s1.equals("\n")){
                    if(!ss.equals("")){
                        a.add(ss);
                    }
                    ss = "";
                }
                else{
                    ss = ss + s1;
                }
            }
            a.add(ss);
        }
        return a;
    }
 
}
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
17.04.2019, 21:23
Сами классы:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;
 
public class MyStack<T> implements Iterable<T> {
    private static final String MSG = "Element not found.";
    private Node head;
 
    public boolean empty() {
        return head == null;
    }
 
    public T push(T value) {
        this.head = new Node(this.head, value);
        return value;
    }
 
    public T peek() {
        if (this.head == null) {
            throw new EmptyStackException();
        }
        return this.head.value;
    }
 
    public T pop() {
        if (this.head == null) {
            throw new EmptyStackException();
        }
        T value = this.head.value;
        this.head = this.head.next;
        return value;
    }
 
    public int search(T value) {
        int index = -1;
        if (!empty()) {
            int search = 0;
            for (Node cursor = this.head; cursor != null; cursor = cursor.next) {
                if (value == cursor.value || cursor.value.equals(value)) {
                    index = search;
                    break;
                }
                search++;
            }
        }
        return index;
    }
 
    public void clear() {
        this.head = null;
    }
 
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("[");
        if (!empty()) {
            int count = 0;
            for (Node cursor = this.head; cursor != null; cursor = cursor.next) {
                if (count++ != 0) {
                    sb.insert(1, ", ");
                }
                sb.insert(1, cursor.value);
            }
        }
        return sb.append("]").toString();
    }
 
    @Override
    public Iterator<T> iterator() {
        return new StackIterator();
    }
 
    private class Node {
        private Node next;
        private T value;
 
        Node(Node next, T value) {
            this.next = next;
            this.value = value;
        }
    }
 
    private class StackIterator implements Iterator<T> {
        private Node cursor = head;
 
        @Override
        public boolean hasNext() {
            return cursor != null;
        }
 
        @Override
        public T next() {
            if (!hasNext()) {
                throw new NoSuchElementException(MSG);
            }
            T value = cursor.value;
            cursor = cursor.next;
            return value;
        }
    }
}
 
class ReadFile {
    public MyStack<String> readFileToStack(String path) {
        MyStack<String> stack = new MyStack<>();
        if (path != null) {
            try (Scanner read = new Scanner(new File(path))) {
                String line;
                while (read.hasNextLine()) {
                    line = read.nextLine().trim();
                    if (line.length() > 0) {
                        line = line.replaceAll("\\p{Punct}", " ").trim();
                        for (String word : line.split("\\s+")) {
                            stack.push(word);
                        }
                    }
                }
            } catch (FileNotFoundException e) {
                System.out.println("ERROR: File not found.");
            }
        }
        return stack;
    }
 
    public MyStack<String> getMaxLines(MyStack<String> stack) {
        MyStack<String> result = new MyStack<>();
        int max = 0;
        for (String word : stack) {
            if (max == word.length()) {
                result.push(word);
            } else if (max < word.length()) {
                result.clear();
                max = word.length();
                result.push(word);
            }
        }
        return result;
    }
}
 
 
class MyStackTest {
    private static final String PATH = "test.txt";
 
    public static void main(String[] args) {
        ReadFile read = new ReadFile();
        MyStack<String> words = read.readFileToStack(PATH);
        System.out.println("All words: " + words + ";");
 
        MyStack<String> stackTask = read.getMaxLines(words);
        System.out.println("Max length words: " + stackTask + ";");
    }
}
Добавлено через 39 секунд
Файл [test.txt]:

Code
1
2
3
4
5
дом кухня балкон
диван стол стул
пол стена
дверь, окно, лампа
дом. кухня балкон..
Добавлено через 33 секунды
Вывод в консоль:

Code
1
2
3
4
All words: [дом, кухня, балкон, диван, стол, стул, пол, стена, дверь, окно, лампа, дом, кухня, балкон];
Max length words: [балкон, балкон];
 
Process finished with exit code 0
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.04.2019, 21:23
Помогаю со студенческими работами здесь

Переставить местами слова с максимальной и минимальной длиной
Ввести произвольное предложение, переставить местами слова с максимальной и минимальной длиной. заранее спасибо)

Поменять в матрице слова с максимальной и минимальной длиной в первой строке
Напишите программу, которая заполняет с клавиатуры массив А(3,3) словами разного размера и меняет в нем местами максимальное и минимальное...

Найти в строке слова с максимальной и минимальной длиной и переписать их в другую строку
Ребят, выручите, пожалуйста. Найти слово с максимальной и минимальной длиной и переписать их в другую строку. while(i&lt;strlen(s1)) ...

Переписать из текстового файла f в файл f1 строку с максимальной длиной
. Переписать из текстового файла f в файл f1 строку с максимальной длинной.

Класс "Слово": определить поле с максимальной длиной слова
В классе определить поле с максимальной длиной слова, автовычисляемое поле, хранящее количество различных букв в слове,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru