JavaRush /Java блогу /Random-KY /Java тилиндеги стринг классы

Java тилиндеги стринг классы

Группада жарыяланган
Javaдагы String классы Java тorндеги саптар менен иштөө үчүн иштелип чыккан. Java программасында аныкталган бардык сап литералдары (мисалы, "abc") String классынын инстанциялары болуп саналат. анын негизги өзгөчөлүктөрүн карап көрөлү:
  1. Класс Serializableжана интерфейстерин ишке ашырат CharSequence. Ал пакетке киргизилгендиктен java.lang, аны импорттоонун кереги жок.
  2. Java тorндеги String классы акыркы класс жана балалуу боло алbyte.
  3. String классы өзгөрүлгүс класс, башкача айтканда, анын an objectилери түзүлгөндөн кийин өзгөртүлбөйт. String классынын an objectисине алып келе турган String an objectиндеги бардык операциялар жаңы an objectти түзүүгө алып келет.
  4. Өздөрүнүн өзгөрүлбөстүгүнө байланыштуу String классынын an objectтери жип коопсуз жана көп жиптүү чөйрөдө колдонулушу мүмкүн.
  5. toStringJavaдагы ар бир an object бардык Java класстары класстан мураска алынган метод аркылуу сапка айландырылат Object.
Java тorндеги стринг классы - 1

Java String менен иштөө

Бул Javaда эң көп колдонулган класстардын бири. Анын саптагы айрым символдорду талдоо, саптарды салыштыруу жана издөө, ички саптарды чыгаруу, бардык символдор кичине жана чоң регистрге айландырылган саптын көчүрмөсүн түзүү жана башка ыкмалары бар. String классынын бардык ыкмаларынын тизмесин расмий documentтерден тапса болот . Java ошондой эле примитивдерди сапка айландыруучу жана тескерисинче бириктирүүнүн (саптарды бириктирүү) жөнөкөй механизмин ишке ашырат. Келгиле, Java тorнде String классы менен иштөөнүн айрым мисалдарын карап көрөлү.

Саптарды түзүү

String классынын үлгүсүн түзүүнүн эң оңой жолу - ага саптын литералынын маанисин ыйгаруу:
String s = "I love movies";
Бирок, String классында сизге мүмкүнчүлүк берген көптөгөн конструкторлор бар:
  • бош сапты камтыган an object түзүү
  • сап өзгөрмөнүн көчүрмөсүн түзүү
  • символдор массивинин негизинде сап түзүңүз
  • byte массивинин негизинде сап түзүү (codeдоолорду эске алуу менен)
  • жана башкалар.

Сап кошуу

Java менен эки сапты кошуу абдан жөнөкөй +. Java сизге өзгөрмөлөрдү жана сап литералдарын бири-бирине кошууга мүмкүндүк берет:
public static void main(String[] args) {
    String day = "Day";
    String and = "And";
    String night = "Night";

    String dayAndNight = day + " " + and + " " + night;
}
String классынын an objectтерин башка класстардын an objectилерине кошуу менен, биз акыркысын сап формасына азайтабыз. Башка класстардагы an objectилерди сап көрсөтүүгө конвертациялоо toStringan objectте имплициттүү методдук чакыруу аркылуу ишке ашырылат. Муну төмөнкү мисал менен көрсөтөлү:
public class StringExamples {
    public static void main(String[] args) {
        Human max = new Human("Max");
        String out = "java object: " + max;
        System.out.println(out);
        // Output: Java object: Person named Max
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "The Man with the Name" + name;
        }
    }
}

Сапты салыштыруу

Саптарды салыштыруу үчүн төмөнкү ыкманы колдонсоңуз болот equals():
public static void main(String[] args) {
    String x = "Test String";
    System.out.println("Test String".equals(x)); // true
}
Саптарды салыштырганда биз үчүн жагдай маанилүү болбогондо, төмөнкү ыкманы колдонушубуз керек equalsIgnoreCase():
public static void main(String[] args) {
       String x = "Test String";
       System.out.println("test string".equalsIgnoreCase(x)); // true
}

Объектти/примитивди сапка айландыруу

Каалаган Java классынын үлгүсүн же кандайдыр бир примитивдүү маалымат түрүн сап көрсөтүүгө айландыруу үчүн, төмөнкү ыкманы колдонсоңуз болот String.valueOf():
public class StringExamples {
    public static void main(String[] args) {
        String a = String.valueOf(1);
        String b = String.valueOf(12.0D);
        String c = String.valueOf(123.4F);
        String d = String.valueOf(123456L);
        String s = String.valueOf(true);
        String human = String.valueOf(new Human("Alex"));

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(s);
        System.out.println(human);
        /*
        Output:
        1
        12.0
        123.4
        123456
        true
        Person named Alex
         */
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "The Man with the Name" + name;
        }
    }
}

Сапты санга айландыруу

Көбүнчө сапты санга айландыруу керек. Примитивдик түрдөгү орогуч класстары дал ушул максатка кызмат кылган методдорго ээ. Бул ыкмалардын баары талдоо сөзүнөн башталат. Төмөндө сапты бүтүн ( Integer) жана бөлчөк ( ) сандарга которууну карап көрөлү :Double
public static void main(String[] args) {
    Integer i = Integer.parseInt("12");
    Double d = Double.parseDouble("12.65D");

    System.out.println(i); // 12
    System.out.println(d); // 12.65
}

Саптардын жыйнагын сап көрсөтүүсүнө айландыруу

Эгер кандайдыр бир саптар жыйнагынын бардык элементтерин ыктыярдуу бөлгүч аркылуу сап көрсөтүүгө айландыруу керек болсо, Java String классынын төмөнкү ыкмаларын колдонсоңуз болот:
  • join(CharSequence delimiter, CharSequence... elements)
  • join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
delimiterЭлемент бөлгүч кайда жана elementsсап массив/сап чогултуу инстанциясы. Ар бирин чекиттүү үтүр менен бөлүп, саптардын тизмесин сапка айландырган мисалды карап көрөлү:
public static void main(String[] args) {
    List<String> people = Arrays.asList(
            "Philip J. Fry",
            "Turanga Leela",
            "Bender Bending Rodriguez",
            "Hubert Farnsworth",
            "Hermes Conrad",
            "John D. Zoidberg",
            "Amy Wong"
    );

    String peopleString = String.join("; ", people);
    System.out.println(peopleString);
    /*
    Output:
    Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong
     */
}

Сапты саптардын массивине бөлүү

Бул операция ыкмасы менен аткарылат split(String regex) Сепаратор сап туруктуу туюнтмасы regex. Төмөнкү мисалда биз мурунку мисалда жасаганга карама-каршы операцияны жасайбыз:
public static void main(String[] args) {
    String people = "Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong";

    String[] peopleArray = people.split("; ");
    for (String human : peopleArray) {
        System.out.println(human);
    }
    /*
    Output:
    Philip J. Fry
    Turanga Leela
    Bender Bending Rodriguez
    Hubert Farnsworth
    Hermes Conrad
    John D. Zoidberg
    Amy Wong
     */
}

Элементтин сызыктагы ордун аныктоо

Java тorнде, String саптагы символдун/под саптын ордун аныктоо үчүн ыкмалардын топтомун камсыз кылат:
  1. indexOf(int ch)
  2. indexOf(int ch, int fromIndex)
  3. indexOf(String str)
  4. indexOf(String str, int fromIndex)
  5. lastIndexOf(int ch)
  6. lastIndexOf(int ch, int fromIndex)
  7. lastIndexOf(String str)
  8. lastIndexOf(String str, int fromIndex)
Кайда:
  1. ch— сиз издеп жаткан символ ( char)
  2. str- издөө сабы
  3. fromIndex— элементти издөө үчүн позиция
  4. ыкмалар indexOf- табылган биринчи элементтин ордун кайтаруу
  5. ыкмалар lastIndexOf- табылган акыркы элементтин ордун кайтаруу
Эгер сиз издеп жаткан элемент табылбаса, методдор -1 сапты кайтарат. AКелгиле, англис алфавитиндеги , K, Z, тамгаларынын сериялык номерин табууга аракет кылалы Я, бирок Java тorндеги сапта символдорду индекстөө нөлдөн башталаарын унутпаңыз:
public static void main(String[] args) {
    String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    System.out.println(alphabet.indexOf('A')); // 0
    System.out.println(alphabet.indexOf('K')); // 10
    System.out.println(alphabet.indexOf('Z')); // 25
    System.out.println(alphabet.indexOf('Я')); // -1
}

Саптан субсапты чыгаруу

Саптан субсапты чыгаруу үчүн Javaдагы String классы төмөнкү ыкмаларды берет:
  • substring(int beginIndex)
  • substring(int beginIndex, int endIndex)
Келгиле, файлдын атын анын жолунан алуу үчүн элементтин жайгашуусун жана субсапты чыгаруу ыкмаларын кантип колдонсо болорун карап көрөлү:
public static void main(String[] args) {
    String filePath = "D:\\Movies\\Futurama.mp4";
    int lastFileSeparatorIndex = filePath.lastIndexOf('\\');
    String fileName = filePath.substring(lastFileSeparatorIndex + 1);
    System.out.println(fileName); //9
}

Сапты чоң/кичи регистрге айландыруу:

String классы сапты чоң жана кичине регистрге которуу ыкмаларын камсыз кылат:
  • toLowerCase()
  • toUpperCase()
Келгиле, бул ыкмалар кантип иштээрин мисал аркылуу карап көрөлү:
public static void main(String[] args) {
    String fry = "Philip J. Fry";

    String lowerCaseFry = fry.toLowerCase();
    String upperCaseFry = fry.toUpperCase();

    System.out.println(lowerCaseFry); // philip j. fry
    System.out.println(upperCaseFry); // PHILIP J. FRY
}
Бул Java классы менен иштөө JavaRush онлайн курсунун баштапкы деңгээлинде окулат:

Кошумча булактар

String классы тууралуу маалымат JavaRush коомчулугунун башка макалаларында да берилген:
  1. Java'дагы саптар - Бул макалада Java тorндеги саптар менен иштөөнүн кээ бир негиздери камтылган.
  2. Java String. Интервью суроолору жана жооптору, 1-бөлүк - бул макалада тема боюнча интервью суроолору талкууланат String, ошондой эле түшүндүрмөлөр жана codeдуу мисалдар менен суроолорго жооп берет.
  3. Java тorндеги strings (class java.lang.String) - бул макалада String классына тереңирээк талдоо берилет, ошондой эле бул класс менен иштөөнүн татаалдыктары талкууланат.
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION