Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 01.04.2020
Сообщений: 13

Отсортировать строки в файле по длине без учета пробела

18.10.2020, 12:10. Показов 2270. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание звучит так: Отсортировать строки в файле по длине без учета пробела. Сортировку сделал, но не могу понять, как это совместить это с файлом, помогите, пожалуйста.
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
import java.io.*;
import java.util.HashMap;
import java.util.*;
 
public class Main {
    public static void main(String [] args) throws FileNotFoundException, IOException {
        int n = 0;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        File f = new File("D://IntelliJ IDEA Community Edition 2020.2.1//text.txt");
        BufferedReader fin = new BufferedReader(new FileReader(f));
        LineNumberReader lineNumberReader = new LineNumberReader(fin);
 
        int lineNumber = 0;
        String name;
        String line;
        String [] str = new String[n];
        System.out.println("Print File" + f.getName() + "? y/n");
        name = br.readLine();
        if (name.equals("y"))
            while ((line = fin.readLine()) != null)
        for (int i = 0; i < str.length-1; i++)
        {
            for (int j = i+1; j < str.length; j++)
            {
                if (str[i].length()<str[j].length())
                {
                    String temp = str[i];
                    str[i] = str[j];
                    str[j] = temp;
                }
            }
        }
 
 
         int maxlength = str[0].length();
        System.out.println("Строки в порядке убывания длины:");
        {
           System.out.print(str[i]);
            for (int j = 0; j < maxlength - str[i].length(); j++)
               System.out.print(" ");
        }
 
 
      
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.10.2020, 12:10
Ответы с готовыми решениями:

Как отсортировать строки в txt-файле(130.000 строк) по маске до первого пробела(разделителя)?
Помогите отсортировать строки в txt-файле(130.000 строк) по маске до первого пробела(разделителя)? Структура строки: вначале Код ...

Отсортировать строки из вектора в лексикографическом порядке без учета регистра
Написал вот такой код, он все сортирует нормально, но только если все строки одной длины. Если, допустим, ввести '2 abcd abc', то программа...

Отсортировать по длине БЕЗ order by
Здравствуйте, делаю задачки, проверяемые системой на sql запросы. При проверке система просит убрать order by, хотя результат вроде...

3
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
18.10.2020, 12:44
Лучший ответ Сообщение было отмечено bog1 как решение

Решение

Java
1
2
3
4
5
6
try (Stream<String> lines = Files.lines(Paths.get("input.txt"))) {
            lines.sorted(Comparator.comparingInt(String::length))
                    .forEach(System.out::println);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
Кликните здесь для просмотра всего текста
Bash
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
}
    }
        {
        }
        {
        }
            {
            }
import java.io.*;
                {
                }
        int n = 0;
import java.util.*;
public class Main {
        String name;
        String line;
import java.util.HashMap;
        int lineNumber = 0;
        name = br.readLine();
        if (name.equals("y"))
                    str[j] = temp;
                    str[i] = str[j];
           System.out.print(str[i]);
               System.out.print(" ");
        String [] str = new String[n];
                    String temp = str[i];
         int maxlength = str[0].length();
        for (int i = 0; i < str.length-1; i++)
            for (int j = i+1; j < str.length; j++)
            while ((line = fin.readLine()) != null)
                if (str[i].length()<str[j].length())
        System.out.println("Строки в порядке убывания длины:");
        System.out.println("Print File" + f.getName() + "? y/n");
            for (int j = 0; j < maxlength - str[i].length(); j++)
        BufferedReader fin = new BufferedReader(new FileReader(f));
        LineNumberReader lineNumberReader = new LineNumberReader(fin);
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        File f = new File("D://IntelliJ IDEA Community Edition 2020.2.1//text.txt");
    public static void main(String [] args) throws FileNotFoundException, IOException {


Добавлено через 4 минуты
В обратном порядке
Java
1
lines.sorted((s, s1) -> Integer.compare(s1.length(), s.length()))
0
0 / 0 / 0
Регистрация: 01.04.2020
Сообщений: 13
19.10.2020, 12:24  [ТС]
iSmokeJC, а как сделать, чтобы пробелы не учитывало, пытался через цикл, ругается.
Java
1
2
3
4
5
6
7
8
   try (Stream<String> lines = Files.lines(Paths.get("D://IntelliJ IDEA Community Edition 2020.2.1//text.txt"))) {
            for (Integer i: lines)
                lines[i].replace(" ", "");
            lines.sorted((s, s1) -> Integer.compare(s1.length(), s.length()))
                    .forEach(System.out::println);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
19.10.2020, 18:41
Лучший ответ Сообщение было отмечено bog1 как решение

Решение

Цитата Сообщение от bog1 Посмотреть сообщение
пробелы не учитывало
Смотря какие.
В начале/конце? Тогда так
Java
1
2
3
lines.map(String::trim)
       .sorted(Comparator.comparingInt(String::length))
       .forEach(System.out::println);
Добавлено через 1 минуту
А если реплейсить в каждой строке вообще все пробелы - то они и выведутся без пробелов. Можно, конечно, и это обойти, но геморно немного.

Добавлено через 3 минуты
Java
1
2
3
4
5
6
lines.map(String::trim)
       .sorted(Comparator.comparingInt(s -> {
               s = s.replaceAll(" ", "");
               return s.length();
           }))
       .forEach(System.out::println);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.10.2020, 18:41
Помогаю со студенческими работами здесь

Отсортировать строки по длине
помогите пожалуйста есть программа она находит первую и последнюю строку по алфавиту и удаляет их но надо так же написать функцию для...

Отсортировать строки списка по длине
Каким образом можно отсортировать список по длине строки? Т.е. с начала длинные строки, далее короткие.

Отсортировать строки файла по длине слова
дан текстовый файл. в первом столбце порядковый номер от 1 до 10. во втором столбце по одному слову разной длины. надо отсортировать по...

Массив строк отсортировать по длине строки
Массив строк отсортировать по длине строки

Массив строк отсортировать по длине строки
Помогите реализовать код с динамическим массивом. Не могу понять как можно отсортировать строки по размеру .


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru