Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2014, 12:11   #51
pashkevych
Пользователь
 
Регистрация: 03.04.2012
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Немного поковырялся с Вашим заданием....
Кое-что вроде получилось.... Итог 2-а файла:
Main.java
Код:
public class Main {
    public static void main(String[] args) {
        char[] ch = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'i', 'k'};

        FixedString fixedString = new FixedString();
        fixedString.print();
        System.out.println("Пустая ли строка?: " + fixedString.isEmpty());
        System.out.println("------------------------");

        FixedString fixedStringOne = new FixedString(ch);
        fixedStringOne.print();
        System.out.println("Пустая ли строка?: " + fixedStringOne.isEmpty());
        System.out.println("Символ под индексом 2: " + fixedStringOne.charAt(2));
        fixedStringOne.setCharAt(6, 'W');
        fixedStringOne.print();
        System.out.println("------------------------");

        FixedString fixedStringTwo = new FixedString(1, 5, ch);
        fixedStringTwo.print();
        System.out.println("Пустая ли строка?: " + fixedStringTwo.isEmpty());
        System.out.println("Символ под индексом 3: " + fixedStringOne.charAt(3));

    }
}
FixedString.java
Код:
public class FixedString {
    private String string = null;

    /** Конструктор без параметров */
    FixedString() {
        this.string = "";
    }

    /** Конструктор с параметром - массив char */
    FixedString(char ... ch) {
        this.string = String.valueOf(ch);
    }

    /** Конструктор в который передается начальный индекс, длина и сам массив char */
    FixedString(int offset, int length, char ... ch) {
        char[] tmp = new char[length];
        for (int j = 0; j < tmp.length; j++) {
            tmp[j] = ch[offset++];
        }
        this.string = String.valueOf(tmp);
    }

    /** Вывод результата на экран */
    public void print() {
        System.out.println("Результат: \"" + string + "\"");
    }

    /** Проверка пустая ли строка */
    public boolean isEmpty() {
        return string.length() == 0;
    }

    /** Вывод элемента по индексу */
    public char charAt(int index) {
        char[] ch = string.toCharArray();

        if((index < 0) || (index > ch.length)) {
            throw new StringIndexOutOfBoundsException(index);
        }
        return ch[index];
    }

    /** Замена символа в строке */
    public void setCharAt(int index, char ch) {
        char[] old = string.toCharArray();

        if((index < 0) || (index > old.length)) {
            throw new StringIndexOutOfBoundsException(index);
        }

        old[index] = ch;
        this.string = String.valueOf(old);
    }
}
Конечно в коде есть вещи которые мне вообще не нравятся... Можно было лучше сделать..
Мой код , до которого я сам дошел )
PHP код:
 public FixedString trim()
    {
        
int beginIndex 0;
        
int endIndex this.length();
        
        for (; (
beginIndex this.length()) && (this.charAt(beginIndex) == ' '); ++beginIndex) {}
        for (; (
endIndex 0) && (this.charAt(endIndex 1) == ' '); --endIndex) {}
        
        return 
this.substring(beginIndexendIndex);
    } 
pashkevych вне форума Ответить с цитированием
Старый 19.08.2014, 18:23   #52
pashkevych
Пользователь
 
Регистрация: 03.04.2012
Сообщений: 31
По умолчанию

Пробую делать функцию split() ,
PHP код:
 public FixedString[] split()
    {
        
int beginIndex 0;
        
        for (; (
beginIndex this.length()) && (this.charAt(beginIndex) == ' '); ++beginIndex
        {
             if (
this.charAt(beginIndex) == ' ')
                 
System.out.println(',');
            
        }
        return 
this.substring(beginIndex);
    } 
Код:
 for (; (beginIndex < this.length()) && (this.charAt(beginIndex) == ' '); ++beginIndex) // проверяю размер и если нашло пробел записіваем  через кому.
Что я снова неверно делаю? Я сам это писал (наперед пишу) . Мне нужно чтобы оно вывело слова через кому : abcd, efg, klmn
Вывод на екран:
PHP код:
char alphabet6[] = { 'a','b''c''d'' ',  'e''f''g'' ''k','l''m''n'};
FixedString str15 = new FixedString(alphabet6);
        
FixedString str16 str15.split();
        
str16.print(); 

Последний раз редактировалось pashkevych; 19.08.2014 в 20:15.
pashkevych вне форума Ответить с цитированием
Старый 20.08.2014, 10:02   #53
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Скажите, а что Ваш метод должен делать?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 20.08.2014, 19:24   #54
pashkevych
Пользователь
 
Регистрация: 03.04.2012
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Скажите, а что Ваш метод должен делать?
Я уже понял что я снова выложил код ниочем. Мой метод
Код:
  public FixedString[] split()
    {
        int wordCount = 0;
        for (int index = 1; index < this.length(); ++index) 
        {
            if ((this.charAt(index) == ' ') && (this.charAt(index - 1) != ' '))
            {
                ++wordCount;
            }
        }
        if (!this.isEmpty() && (this.charAt(this.length() - 1) != ' ')) 
        {
            ++wordCount;
        }
        FixedString[] words = new FixedString[wordCount];
        
        int wordIndex = 0; 
        for (int index = 0; index < this.length();) 
        {
            for (; (index < this.length()) && (this.charAt(index) == ' '); ++index){}
            int beginIndex = index;
            
            for (; (index < this.length()) && (this.charAt(index) != ' '); ++index){}
            int endIndex = index;
            
            words[wordIndex] = this.substring(beginIndex, endIndex);
            ++wordIndex;
        }
        
        return words; 
    }
pashkevych вне форума Ответить с цитированием
Старый 21.08.2014, 06:19   #55
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

pashkevych что должен делать Ваш метод?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 21.08.2014, 10:32   #56
pashkevych
Пользователь
 
Регистрация: 03.04.2012
Сообщений: 31
По умолчанию

разбивает входную строку на "кусочки" используя для этого указанный разделитель.
pashkevych вне форума Ответить с цитированием
Старый 21.08.2014, 10:32   #57
pashkevych
Пользователь
 
Регистрация: 03.04.2012
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
pashkevych что должен делать Ваш метод?
разбивает входную строку на "кусочки" используя для этого указанный разделитель.
pashkevych вне форума Ответить с цитированием
Старый 21.08.2014, 10:42   #58
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

На куски определенного размера (длины) или произвольно?
Еще один небольшой вопрос - а реализованный Вами метод работает, проверяли?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 21.08.2014 в 10:44.
Bugrimov вне форума Ответить с цитированием
Старый 21.08.2014, 10:44   #59
pashkevych
Пользователь
 
Регистрация: 03.04.2012
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
На куски определенного размера (длины) или произвольно?
в моем случаи до пробела.
А что за допрос?)
Смотрите я может Вас снова не правильно понимаю но не на куски определеного размера так как у нас моежет быть такоє :
Код:
char alphabet7[] = {'a', ' ', 'b', 'c', 'd', ' ',  'e', ' ', 'f', 'g', ' ', 'k','l', 'm', 'n'};
тоесть а bcd e fg klmn

Последний раз редактировалось pashkevych; 21.08.2014 в 10:48.
pashkevych вне форума Ответить с цитированием
Старый 21.08.2014, 10:46   #60
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

На сколько я понимаю, нужно заменить пробел запятой.... Так?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java!В программе создать одиночные объекты и массив объектов класса и вызвать методы. Andros96 Помощь студентам 0 17.11.2013 15:41
Конструктор класса не хочет принимать в качестве параметра адрес объекта другого класса Jugger Помощь студентам 3 05.01.2012 04:10
Переменные экземпляра,класса, константы и переменные cop08 Общие вопросы .NET 3 20.12.2010 21:56
Конструктор класса XPAiN Общие вопросы Delphi 2 24.01.2010 15:00
Если в классе объявить объект другого класса,будет ли видно переменные первого класса из объекта второго? TwiX Общие вопросы Delphi 3 15.11.2009 00:54