Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 31.12.2015
Сообщений: 46
1

Необходимо исправить/доработать код

01.05.2018, 15:15. Показов 1161. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет форумчане ! Имеется данная задача : Нужно ввести строку в консоль и проверить совпадает ли она со строкой в файле.
Сам я плохо разбираюсь в программировании, а сдать лабу хочется. Вот какой код я натворил, но он не работает( хотя студия не видит ошибок). Всем кто будет неравнодушен - спасибо ! (Сделано буферридером потому что препод ненавидит сканер)
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
import java.util.ArrayList;
import java.util.List;
import java.util.regex.*;
import java.io.*;
 
public class laba2 {
 
    public static void main(String[] args) {
        try {
            String fileName = "test.txt";
            int lines = 1;
            StringProcessor processor = new StringProcessor();
            processor.readFromFile(fileName, lines);
            processor.clc();
        } catch (IOException e) {
            e.printStackTrace();
        } {
            System.out.println("Ошибка");
 
        }
        }
    }
 
class StringProcessor {
    private List<String> list;
 
    StringProcessor() {
        list = new ArrayList<>();
    }
 
    void readFromFile(String filename, int lines) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(filename)));
        for (int i = 0; i < lines; i++) {
            list.add(in.readLine());
        }
    }
 
     public static void clc() throws IOException {
        FileReader fr = new FileReader("test.txt");
        BufferedReader br;
        br = new BufferedReader(fr);
         br.readLine();
        System.out.println("Введите правильную строку:");
         Integer.parseInt(br.readLine());
 
        Pattern p1 = Pattern.compile(br.readLine());
        Matcher m1 = p1.matcher(br.readLine());
        if (m1.matches()) {
            System.out.println("Строка совпадает со строкой в файле");
        } else {
            System.out.println("Строка не совпадает со строкой в файле");
        }
 
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.05.2018, 15:15
Ответы с готовыми решениями:

Доработать код
У нас есть файл, мы считываем с него строки и записываем в другой файл перевернутые строки. Здесь...

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

Исправить и доработать код
Задание : Дано прямоугольную матрицу вещественных чисел . Установить, имеется ли в данной матрице...

Исправить и доработать код
Здравствуйте! Помогите пожалуйста отладить программу. Программа рабочая, там нужно правильно...

7
Am I evil? Yes, I am!
Эксперт PythonЭксперт Java
17589 / 10339 / 2825
Регистрация: 21.10.2017
Сообщений: 22,416
01.05.2018, 15:19 2
Цитата Сообщение от 19Viktor96 Посмотреть сообщение
совпадает ли она со строкой
Целиком?
0
0 / 0 / 0
Регистрация: 31.12.2015
Сообщений: 46
01.05.2018, 15:24  [ТС] 3
Да, например вводишь строку "qwerty", а если в файле qwerty123, то выдает не совпадение, если в файле тоже "qwerty", то выдает соответственно совпадение.
0
Am I evil? Yes, I am!
Эксперт PythonЭксперт Java
17589 / 10339 / 2825
Регистрация: 21.10.2017
Сообщений: 22,416
01.05.2018, 15:25 4
Java
1
2
3
4
5
6
System.out.println("Введите правильную строку:");
        String s = br.readLine();
 
        for (String line : list) {
            if (s.equals(line)) System.out.println("Match!");
        }
list - твой список, считанный с файла
0
0 / 0 / 0
Регистрация: 31.12.2015
Сообщений: 46
01.05.2018, 15:38  [ТС] 5
Вставил ваш код, list горит красным, студия предложила его сделать static, вроде все ок, но при запуске ошибки :
Java
1
2
3
4
Введите правильную строку:
Exception in thread "main" java.lang.NullPointerException
    at StringProcessor.clc(laba2.java:52)
    at laba2.main(laba2.java:18)
0
Am I evil? Yes, I am!
Эксперт PythonЭксперт Java
17589 / 10339 / 2825
Регистрация: 21.10.2017
Сообщений: 22,416
01.05.2018, 16:04 6
Лучший ответ Сообщение было отмечено 19Viktor96 как решение

Решение

19Viktor96, дабу
Main
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package ru.ismoke;
 
import java.io.*;
 
public class Cyber {
 
    public static void main(String[] args) {
        try {
            String fileName = "test.txt";
            StringProcessor processor = new StringProcessor();
            processor.clc(fileName);
        } catch (IOException e) {
            System.out.println("Ошибка");
            e.printStackTrace();
        }
    }
}

StringProcessor
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
package ru.ismoke;
 
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
 
public class StringProcessor {
    private List<String> list;
 
    StringProcessor() {
        list = new ArrayList<>();
    }
 
    private void readFromFile(String filename) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(filename)));
        while (in.ready()) {
            list.add(in.readLine());
        }
    }
 
    public void clc(String filename) throws IOException {
        readFromFile(filename);
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 
        System.out.println("Введите правильную строку:");
        String s = br.readLine();
        boolean flag = true;
 
        for (String line : list) {
            if (s.equals(line)) {
                System.out.printf("Строка %s совпадает со строкой в файле\n", s);
                flag = false;
            }
        }
        if (flag) System.out.printf("Строка %s не совпадает ни с одной строкой в файле\n", s);
    }
}
1
185 / 155 / 88
Регистрация: 04.10.2014
Сообщений: 397
01.05.2018, 16:07 7
19Viktor96,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.Scanner;
import java.io.*;
 
public class laba2 {
    public static void main(String[] args) throws FileNotFoundException {
        String consoleStr = new Scanner(System.in).nextLine();
        String fileStr = new Scanner(new File("text.txt")).nextLine();
 
        System.out.println(consoleStr.equals(fileStr) ? consoleStr + " совпадает с " + fileStr : consoleStr + " не совпадает с " + fileStr);
        /* строку выше можно заменить на код ниже)
        if (consoleStr.equals(fileStr))
            System.out.println(consoleStr + " совпадает с " + fileStr);
        else System.out.println(consoleStr + " не совпадает с " + fileStr);
        */
    }
}
1
0 / 0 / 0
Регистрация: 31.12.2015
Сообщений: 46
01.05.2018, 16:18  [ТС] 8
Спасибо Вам за ответы, программа от iSmokeJC как раз подошла мне, и GreeNicee тоже лайк за ответ.
0
01.05.2018, 16:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.05.2018, 16:18
Помогаю со студенческими работами здесь

Необходимо исправить код
Дан неориентированный граф городов. Задача: найти кратчайший путь из одной точки в другую. Но...

Необходимо исправить код на Java!
Не работает код. Помогите разобраться,в чём дело и исправить их! Спасибо огромное! /*import...

Необходимо исправить код в крочайшие сроки
from tkinter import * from math import sqrt #sqrt(x) from math import sin #sin(x) def...

Задача на массивы. Необходимо исправить код
Исходный код::: #include &lt;iostream.h&gt; #include&lt;conio.h&gt; #define I 3 #define J 4 void...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru