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

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

30.10.2018, 17:54. Показов 1423. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю 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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru