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

Разбор текстового файла на слова

02.06.2016, 19:03. Показов 1822. Ответов 6

Студворк — интернет-сервис помощи студентам
Добрый день, задача такова: Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию
При разработке алгоритма считать, что количество строк в исходном файле заранее неизвестно.
1) Скопировать из файла F1 в файл F2 все строки, которые не содержат слова , начинающиеся на одну букву.
2) Найти самое короткое слово в файле F2.

Помогите с данным заданием, я пытался сделать, но ничего не вышло, спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.06.2016, 19:03
Ответы с готовыми решениями:

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

Разбор текстового файла
День добрый! Возникла такая проблема, на решение которой у меня не хватает опыта, вот прощу вашей помощи. Нужно текстовый файл, который...

разбор текстового файла
Добрый день. Помогите пожалуйста. Где можно посмотреть пример разбра текстового файла разделенного табуляцией, либо символом?

6
 Аватар для RedPatrick
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
03.06.2016, 11:38
darknes1903, Класс со статическими методами:
Кликните здесь для просмотра всего текста
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
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
 
 
 
public class FileCopyMaker {
    
    //создать файл   
    public static void createStringFile (String path, String... text ) 
            throws FileNotFoundException{
        PrintStream out = new PrintStream(new FileOutputStream(path));
        for (int i = 0; i < text.length; i++){
            out.println(text[i]);
        }
        out.close();
        System.out.println("File " + path + "created.");
    }
    
    //скопировать файл   
    public static void smartCopyFile (String originalPath, String copyPath, String expelChar)
            throws IOException{
        // expelChar - строки, начинающиеся с этого символа, не копируются
        
        //чтение файла
        File file = new File(originalPath);
        BufferedReader bf = new BufferedReader(new FileReader(file));
        List<String> text = new ArrayList<String>();
        String line;
        while ((line = bf.readLine()) != null){ 
            text.add(line); 
        }
        
        //запись в файл
        PrintStream out = new PrintStream(new FileOutputStream(copyPath));
        for (int i = 0; i < text.size(); i++){
            if (!text.get(i).startsWith(expelChar)) out.println(text.get(i));
        }
        out.close();
        System.out.println("Copied string to " + copyPath); 
    }
    
    public static int findShortestWord (String path) throws IOException{
        //чтение файла
        File file = new File(path);
        BufferedReader bf = new BufferedReader(new FileReader(file));
        List<String> text = new ArrayList<String>();
        String string;
        while ((string = bf.readLine()) != null){   
            text.add(string);   
        }
        //разбить строки по словам
        List<String> words = new ArrayList<String>();
        for (int i = 0; i < text.size(); i++){
            String[] line = text.get(i).split(" ");
            for (int j = 0; j < line.length; j++){
                words.add(line[j]);
            }
        }
        //найти минимальное
        int minLength = Integer.MAX_VALUE;
        for (int i = 0; i < words.size(); i++){
            if (words.get(i).length() < minLength) minLength = words.get(i).length();
        }
        return minLength;
    }
}

Класс Main:
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
import java.io.IOException;
 
public class Main {
    
    public static void main(String[] args) throws IOException  {
    String path = "C://Programming//testFile.txt";
    String copyPath = "C://Programming//testFile2.txt";
    // The Libertines - Gunga Din
    String [] text = {"Woke up again to my chagrin", "Getting sick and tired of feeling sick and tired again",
            "I tried to write, because I got the right", "To make it look as if I’m doing something with my life",
            "Got to find a vein, it’s always the same", "And a drink to ease the panic and the suffering",
            "I woke up again Dreamt of Gunga Din", "Oh, the road is long", "If you stay strong",
            "You’re a better man than I", "You’ve been beaten and flayed", "Probably betrayed",
            "You’re a better man than I", "Woke up again to my evil twin", 
            "The mirror is fucking ugly and I’m sick and tired of looking at him",
            "Been up all night,", "I’ll probably pick a fight", "'Coz I can’t help it,", 
            "I’m bastard in the morning So I try to write,", "I think I have the right",
            "A little drink-y now and then to help me just to see the light", 
            "Just another day, it feels like nothing’s changed",
            "Oh fuck it, oh here I go again"};
    
    FileCopyMaker.createStringFile(path, text);
    FileCopyMaker.smartCopyFile(path, copyPath, "I");
    System.out.println(FileCopyMaker.findShortestWord(copyPath));
    }
    
}
Пример вывода:
Java
1
2
3
File C://Programming//testFile.txtcreated.
Copied string to C://Programming//testFile2.txt
1
1
20 / 20 / 9
Регистрация: 23.09.2013
Сообщений: 329
03.06.2016, 12:15
1) Скопировать из файла F1 в файл F2 все строки, которые не содержат слова , начинающиеся на одну букву.
То есть не копировать строки, в которых более одного слова начинается с одинаковой буквы.

Например -
Integer Short Long Index
Double Float Boolean

Вторую строку нужно копировать.
0
0 / 0 / 0
Регистрация: 11.11.2014
Сообщений: 31
03.06.2016, 12:43  [ТС]
RedPatrick, немного не ясно за певрое задание, оно звучит как "Скопировать из файла F1 в файл F2 все строки, которые не содержат слова , начинающиеся на одну букву."
В итоге у нас копируется все строки которые начинаются не на "I", строки с "I" просто удаляются, задание же по другому звучит

Добавлено через 3 минуты
virtus, да, именно так
0
 Аватар для RedPatrick
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
03.06.2016, 15:05
darknes1903, не понял Вас. Тогда метод копирования выглядит так:
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
public static void smartCopyFile (String originalPath, String copyPath)
            throws IOException{
        
        //чтение файла
        File file = new File(originalPath);
        BufferedReader bf = new BufferedReader(new FileReader(file));
        List<String> text = new ArrayList<String>();
        String line;
        while ((line = bf.readLine()) != null){ 
            text.add(line); 
        }
        
        //запись в файл
        
        PrintStream out = new PrintStream(new FileOutputStream(copyPath));
 
        for (int i = 0; i < text.size(); i++){
        String[] words = text.get(i).split(" ");
        char[] startChars = new char[words.length];
        boolean repeatFound = false;
        for (int j = 0; j < words.length; j++){
            startChars[j] = words[j].charAt(0);
            for (int k = 0; k < j; k++){
                if (startChars[j] == startChars[k]) repeatFound = true;
            }
        }
            
            if (!repeatFound) out.println(text.get(i));
        }
        
        
        out.close();
        System.out.println("Copied string to " + copyPath); 
    }
Регистр не учитывается, но исправить будет недолго
0
763 / 270 / 57
Регистрация: 13.12.2009
Сообщений: 1,110
07.06.2016, 07:55
Пробую читать файл, как в примере. Но возникает ошибка на строке List
Java
1
2
3
4
5
6
7
8
File fil = new File("C:\\1J\\Z1.txt");
    String zc ;
    BufferedReader bf = new BufferedReader(new FileReader(fil));
    List<String> text = new ArrayList<String>();
    String line;
    while ((line = bf.readLine()) != null){ 
        text.add(line); 
    }
и библиотеку добавил
Java
1
import java.awt.List;
0
 Аватар для ninjacut
155 / 154 / 53
Регистрация: 30.04.2016
Сообщений: 321
07.06.2016, 12:58
Не тот лист добавил,
Java
1
java.util.List;
надо
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.06.2016, 12:58
Помогаю со студенческими работами здесь

Разбор текстового файла в powershell
Здравствуйте. есть ли такая команда, которая позволяет считать текстовый файл и, например, когда в тексте будет находиться знак, например -...

Разбор текстового файла в powershell
Добрый день. Я мало что знаю про powershell, но у меня стоит такая задача. У меня есть файл с текстом. И мне нужно сделать так, чтобы,...

Разбор (парсинг) текстового файла
Добрый день. помогите разобрать текстовик следующего содержания =102=TRAIO =1=1=1 =1=99=4MM L ...

Разбор текстового файла в массив
Доброго времени суток, есть текстовый файл с прим ерно таким содержимым: нужно этот текс запихать в некий массив: вот...

При вводе слова в TextBox, проверять наличие введенного слова в списке из текстового файла
Здравствуйте! У меня подготовлен список ссылок в файле 123.txt В списке допустим 3 ссылки: 123.com 66.ru cc.net Когда...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru