Как создать свой класс string в java?

Пользователь

от akeem , в категории: Java , 9 месяцев назад

Как создать свой класс string в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от fred , 9 месяцев назад

@akeem 

В Java уже есть класс String, но если вы хотите создать свой собственный класс String, вот некоторые шаги:

  1. Создайте новый класс с именем String.
  2. Определите поля вашего класса. Например, вы можете определить поле типа char[] для хранения символов строки.
  3. Определите конструктор по умолчанию и конструктор, который принимает строку в качестве параметра. В конструкторе можно проинициализировать поля вашего класса.
  4. Определите методы для работы с вашей строкой, такие как получение длины строки, сравнение строк, конкатенация строк, извлечение подстроки и т.д. Некоторые методы уже реализованы в классе String, но вы можете написать свою собственную реализацию.
  5. Напишите тестовые методы, чтобы проверить работу вашего класса.


Пример:

 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
public class String {

    private char[] chars;

    public String() {
        chars = new char[0];
    }
  
    public String(java.lang.String str) {
        chars = str.toCharArray();
    }

    public int length() {
        return chars.length;
    }

    public boolean equals(String other) {
        if (chars.length != other.length()) {
            return false;
        }
        for (int i = 0; i < chars.length; i++) {
            if (chars[i] != other.charAt(i)) {
                return false;
            }
        }
        return true;
    }

    public String concat(String other) {
        char[] newChars = new char[chars.length + other.length()];
        System.arraycopy(chars, 0, newChars, 0, chars.length);
        System.arraycopy(other.toCharArray(), 0, newChars, chars.length, other.length());
        return new String(newChars);
    }

    public String substring(int beginIndex, int endIndex) {
        char[] subChars = new char[endIndex - beginIndex];
        System.arraycopy(chars, beginIndex, subChars, 0, endIndex - beginIndex);
        return new String(subChars);
    }

    // other methods...

}