JavaRush /Блоги Java /Random-TG /Синфи сатр дар Java

Синфи сатр дар Java

Дар гурӯҳ нашр шудааст
Синфи String дар Java барои кор бо сатрҳо дар Java тарҳрезӣ шудааст. Ҳамаи адабии сатри дар барномаи Java муайяншуда (масалан, "abc") намунаҳои синфи String мебошанд. Биёед ба хусусиятҳои асосии он назар андозем:
  1. Синф интерфейсҳои Serializableваро амалӣ мекунад CharSequence. Азбаски он ба баста дохил карда шудааст java.lang, онро ворид кардан лозим нест.
  2. Синфи String дар Java синфи ниҳоӣ аст ва наметавонад фарзанд дошта бошад.
  3. Синфи String синфи тағирнопазир аст, яъне an objectҳои онро пас аз офарида шуданашон тағир додан мумкин нест. Ҳама гуна амалиёт дар an objectи String, ки боиси an objectи синфи String мегардад, боиси эҷоди an objectи нав мегардад.
  4. Аз сабаби тағирнопазирии худ, an objectҳои синфи String ришта бехатар мебошанд ва онҳоро дар муҳити чанд ришта истифода бурдан мумкин аст.
  5. Ҳар як an objectи Java метавонад ба сатр тавассути усуле табдил дода шавад toString, ки ҳама синфҳои Java аз синф мерос мегиранд Object.
Синфи сатр дар Java - 1

Кор бо Java String

Ин яке аз синфҳои маъмултарин дар Java мебошад. Он дорои усулҳои таҳлor аломатҳои муайяни сатр, муқоиса ва ҷустуҷӯи сатрҳо, истихроҷи зерсатрҳо, сохтани нусхаи сатр бо ҳама аломатҳои ба ҳарфҳои хурд ва калон табдилшуда ва ғайра мебошад. Рӯйхати ҳамаи усулҳои синфи Stringро дар ҳуҷҷатҳои расмӣ пайдо кардан мумкин аст . Java инчунин механизми оддии пайвастшавӣ (пайваст кардани сатр), табдил додани ибтидоиро ба сатр ва баръакс амалӣ мекунад. Биёед якчанд мисолҳои кор бо синфи String дар Java дида бароем.

Эҷоди сатрҳо

Роҳи осонтарини эҷоди намунаи синфи String ин таъин кардани арзиши сатри литералӣ мебошад:
String s = "I love movies";
Аммо, синфи String конструкторҳои зиёде дорад , ки ба шумо имкон медиҳанд:
  • an objectи дорои сатри холӣ эҷод кунед
  • нусхаи тағирёбандаи сатрро эҷод кунед
  • дар асоси массиви аломатҳо як сатр эҷод кунед
  • дар асоси массиви byte сатр эҷод кунед (бо назардошти рамзгузорӣ)
  • ва гайра.

Иловаи сатр

Илова кардани ду сатр дар Java бо истифода аз +. Java ба шумо имкон медиҳад, ки ҳам тағирёбандаҳо ва ҳам сатрро ба ҳамдигар илова кунед:
public static void main(String[] args) {
    String day = "Day";
    String and = "And";
    String night = "Night";

    String dayAndNight = day + " " + and + " " + night;
}
Бо илова кардани an objectҳои синфи String бо an objectҳои синфҳои дигар, мо охиринро ба шакли сатр кам мекунем. Табдил додани an objectҳои синфҳои дигар ба намоиши сатр тавассути даъвати усули ғайриоддӣ toStringдар an 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
}

Табдил додани an object/примитив ба сатр

Барои табдил додани як мисоли ҳама гуна синфи 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;
        }
    }
}

Табдил додани сатр ба адад

Аксар вақт ба шумо лозим аст, ки сатрро ба рақам табдил диҳед. Синфҳои бастабандии навъи ибтидоӣ дорои усулҳое мебошанд, ки маҳз ба ин мақсад хидмат мекунанд. Ҳамаи ин усулҳо бо калимаи parse оғоз мешаванд. Тарҷумаи сатрро ба ададҳои бутун ( 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. Дар мисоли дар поён овардашуда, мо амалиёти муқобor он чизеро, ки дар мисоли қаблӣ иҷро карда будем, иҷро хоҳем кард:
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, 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 аз сифр оғоз мешавад:
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
}

Хориҷ кардани зерсатри аз сатр

Барои аз сатр ҷудо кардани зерсатр, синфи String дар Java усулҳоро пешниҳод мекунад:
  • 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 фаро мегирад.
  2. Java String. Саволҳо ва ҷавобҳои мусоҳиба, қисми 1 - ин мақола саволҳои мусоҳибаро дар мавзӯъ баррасӣ мекунад Stringва инчунин ба саволҳо бо тавзеҳот ва мисолҳои рамзӣ ҷавоб медиҳад.
  3. Сатрҳо дар Java (класс java.lang.String) - ин мақола таҳлor амиқтари синфи String ва инчунин нозукиҳои кор бо ин синфро баррасӣ мекунад.
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION