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

Работа с методами и классами

30.10.2018, 17:54. Показов 1418. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, почему-то не работает код:
(чтобы было понятнее, то вот задание)
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Создать класс для работы сo строками SpecialString. Разработать
следующие члены класса:
1. Поле:
String line;
2. Конструкторы:
позволяющий создать строку на основе заданного строкового литерала;
 конструктор по умолчанию;
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
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
package laba2;
 
import java.util.Scanner;
 
public class SpecialString {
    
    String line;
    int countnol, ind, countunique;
    
    Scanner sc = new Scanner(System.in);
    
    public SpecialString(String line) {
        String str;
        str = sc.nextLine();
        line = str;
    }
    
    public SpecialString(){
    }
 
    public int countNumberOfLetters() { 
        for(char c : line.toCharArray()) {
            if( c >= '0' && c<= '9') {
                ++countnol;
            }
        }
        return countnol;
    }
 
    public int returnLength() {
        return line.length();
    }
    
    public boolean checkPalyndrome(){           
        String lowerInput = line.toLowerCase();
        String reverse = new StringBuffer(lowerInput).reverse().toString();
        if (reverse.equals(lowerInput)) {
            return true;
        }
        else {
            return false;
        }
    }
    
    public char index(int ind) {
        return line.charAt(ind);
    }
    
    public String longestSequenceOfChar(){
        String interimresult="";
        String result="";              //результат
        for(int i=0;i<line.length();i++){
            char ch=line.charAt(i);
            interimresult += ch;       //добавить букву
            for(int j=i+1;j<line.length();j++){
                char ch1=line.charAt(j);
                if(ch!=ch1){
                    break;
                }
                interimresult +=ch;
            }
            if(interimresult.length()>result.length())//сохранить результат если длиннее  
                result = interimresult;
            interimresult = "";                   //очистить чтобы перейти дальше
        }
        return result;
    }
 
    public int countUniqueCharacters() {
        boolean[] isItThere = new boolean[Character.MAX_VALUE];
        for (int i = 0; i < line.length(); i++) {
            isItThere[line.charAt(i)] = true;
        }
 
        int countunique = 0;
        for (int i = 0; i < isItThere.length; i++) {
            if (isItThere[i] == true){
                countunique++;
            }
        }
 
        return countunique;
    }
 
    public String getStringLiteral() {
        return line;
    }
 
    public String makeStringFromLiterals() {;
        String lit;
        lit = sc.nextLine();
        return lit;
    }
}
точка входа
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
package laba2;
 
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        int ind;
        System.out.println("Введите желаемую строку: ");
        Scanner sc = new Scanner(System.in);
        SpecialString go = new SpecialString(sc.nextLine());
        System.out.println("Введите индекс элемента: ");
        ind = sc.nextInt();
        System.out.println("Количество символов в строке: " + go.countNumberOfLetters());
        System.out.println("Длина строки: " + go.returnLength());
        System.out.println("Является ли строка палиндромом: " + go.checkPalyndrome());
        System.out.println("Элемент по индексу: " + go.index(ind));
        System.out.println("Самая длинная последовательность символов: " + go.longestSequenceOfChar());
        System.out.println("Самая длинная последовательность символов: " + go.longestSequenceOfChar());
        System.out.println("Уникальных символов: " + go.longestSequenceOfChar());
        System.out.println("Содержимое строки: " + go.getStringLiteral());
        System.out.println("Строка из литералов: " + go.makeStringFromLiterals());     
    
    }
}
все это дело выкидывает экзепшен:
Code
1
2
3
4
5
6
7
8
Введите желаемую строку: 
 
проверочка
Введите индекс элемента: 
2
Exception in thread "main" java.lang.NullPointerException
    at laba2.SpecialString.countNumberOfLetters(SpecialString.java:22)
    at laba2.Main.main(Main.java:13)
что не так?

Добавлено через 30 минут
Кхм, исправил всё, но появились другие вопросы:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    public int countUniqueCharacters() {
        boolean[] isItThere = new boolean[Character.MAX_VALUE];
        for (int i = 0; i < line.length(); i++) {
            isItThere[line.charAt(i)] = true;
        }
 
        int countunique = 0;
        for (int i = 0; i < isItThere.length; i++) {
            if (isItThere[i] == true){
                countunique++;
            }
        }
 
        return countunique;
    }
вместо кол-ва уникальных букв возвращает совсем не то, что надо.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.10.2018, 17:54
Ответы с готовыми решениями:

Работа с классами и методами
Добрый день. Прошу не оставаться равнодушными !)) Помогите пожалуйста написать методы. Само задание и то что сделал прилагаю. Благодарю за...

Работа с классами и методами
Доброго времени суток. У меня вот в чем вопрос. Есть 2 класса, Program и MyArray Часть кода класса Programm class Program {...

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

2
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
30.10.2018, 18:07
Лучший ответ Сообщение было отмечено k3b4b как решение

Решение

Цитата Сообщение от k3b4b Посмотреть сообщение
что не так?
Например, вот в этом конструкторе все не так.
Цитата Сообщение от k3b4b Посмотреть сообщение
public SpecialString(String line) {
String str;
str = sc.nextLine();
line = str;
}

Java
1
2
3
public SpecialString(String line) {
 this.line = line;
}
Профит
0
0 / 0 / 0
Регистрация: 30.10.2018
Сообщений: 3
30.10.2018, 18:19  [ТС]
А, окей, спасибо
А остальные проблемы я решил, я просто невнимательный и кучу опечаток сделал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.10.2018, 18:19
Помогаю со студенческими работами здесь

Работа с классами и методами
Привет, кто подскажет правильно ли передаю координаты вектора для получения его длины? (файлы GetLenght.cpp и Action.cpp). Что-то в Action...

Работа с generic классами и методами
Добрый день! Встал в ступор, надеюсь поможет кто разобраться. Имею следующую задачу: на основе некого сообщения и ключевых значений в...

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

файл с классами и методами
Добрый вечер, недавно начал учить c# и решил понемногу кодить небольшие приложения для самопрактики. Собственно есть студия 2010 содаю...

Запутался с классами, методами, событиями
Добрый день, С# изучаю недавно и нужна помощь, не до конца понимаю классы и работу с ними. Ситуация такая: мне нужно создать datatable и...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 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 считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru