JavaRush /Блоги Java /Random-TG /Кофе-брейк №116. Чӣ тавр истифода бурдани нишондиҳандаҳои...

Кофе-брейк №116. Чӣ тавр истифода бурдани нишондиҳандаҳои функсионалӣ дар Java. indexOf дар Java - Чӣ гуна индекси сатрро дар Java пайдо кардан мумкин аст

Дар гурӯҳ нашр шудааст

Чӣ тавр истифода бурдани нишондиҳандаҳои функсионалӣ дар Java

Сарчашма: Нишондиҳандаҳои Dev.to an objectҳое мебошанд, ки суроғаи хотираро нигоҳ медоранд ва метавонанд хотираро тавассути нишон додани бевосита ба an objectи мавриди ҳадаф, массив ё суроғаи тағирёбанда ба ҷои гузаштан аз рӯи арзиш захира кунанд. Мутаассифона, дар Java мафҳуми "воқеии" ишораҳо вуҷуд надорад. Аммо хушбахтона, барои мо, як роҳи ҳалли истифодаи истинодҳои методӣ мавҷуд аст, ки ба чизи воқеӣ наздик аст. Кофе-брейк №116.  Чӣ тавр истифода бурдани нишондиҳандаҳои функсионалӣ дар Java.  indexOf дар Java - Чӣ тавр индекси сатрро дар Java пайдо кардан мумкин аст - 1

Нишондиҳандаҳои функсия

Нишондиҳандаи функсия нишондиҳандаест, ки ба суроғаи функсия ишора мекунад. Баъзе ҳолатҳои истифода аз эҷоди реҷаи бозхонд бо роҳи сохтани функсияе, ки функсияи дигарро дар асоси иҷрои он даъват мекунад ё нигоҳ доштани массиви нишоннамои функсияҳо барои усулҳои динамикӣ даъватшуда (масалан, нигоҳ доштани дастурҳои протсессор барои эмулятор) иборат аст.

Симулятсияи нишондиҳандаи функсия

Чор намуди истинодҳои метод вуҷуд дорад . Мо навъеро истифода мебарем, ки ба усули намунаи an objectи мушаххас ишора мекунад. Биёед аз муайян кардани интерфейсе оғоз кунем, ки имзоҳои усулҳои ба шумо ишорашударо муайян мекунад.
// Wrapping interface
private interface FunctionPointer {
  // Method signatures of pointed method
  void methodSignature(int a);
}
Он гоҳ мо усулҳоро бо имзои усули ҳадаф эҷод мекунем.
public void method1(int b) {
  System.out.println("Called method1 with integer " + b);
}

public void method2(int v) {
  System.out.println("Called method2 with integer " + v);
}

public void method3(int a) {
  System.out.println("Called method3 with integer " + a);
}
Қадами навбатӣ ин эҷод кардани тағирёбандаҳои интерфейси бастабандӣ ва таъин кардани усулҳо ба онҳо мебошад. Тағйирёбандаҳо ҳамчун ишоракунанда ба функсияе, ки бояд нигоҳ дошта шаванд ё иҷро шаванд, амал мекунанд.
// Create a variable of the interface and assign
// the method references
FunctionPointer pointer1 = this::method1;
FunctionPointer pointer2 = this::method2;

// Call both methods using their "pointer"
pointer1.methodSignature(3);
pointer2.methodSignature(2);

// Reassign and call pointer 1
pointer1 = this::method3;

pointer1.methodSignature(5);
Усули 1 бо адади бутуни 3 номида мешавад Усули2 бо адади бутуни 2. Усули3 бо адади бутуни 5 номида мешавад

Истифодаи ифодаҳои Lambda

Истинодҳои методро бо истифода аз ифодаҳои лямбда таъин кардан мумкин аст.
// Create a method reference and assign a methods using a lambda.
FunctionPointer pointer1 =
  (a) -> System.out.println("Called pointer1 with int " + a);

FunctionPointer pointer2 =
  (b) -> System.out.println("Called pointer2 with int " + b);

Маҷмӯи нишондиҳандаҳои функсия

Функсияи массиви истинодҳои методиро тавассути эҷоди массиви интерфейси парпечшуда тақлид кардан мумкин аст.
// Create an array of "pointers"
FunctionPointer[] functionPointersArray = new FunctionPointer[3];

// Assign methods
functionPointersArray[0] = this::method1;
functionPointersArray[1] = this::method2;
functionPointersArray[2] = this::method3;

// Call methods
functionPointersArray[0].methodSignature(3);
functionPointersArray[1].methodSignature(4);
functionPointersArray[2].methodSignature(5);

Нишондиҳандаи функсия бо занги мустақим

Агар шумо ҳарду интихобро муқоиса кунед, занги мустақим ба усул нисбат ба истифодаи истинод ба усул қариб 5 маротиба тезтар аст. Ин ҳама аз сабаби қадами иловагии даъвати ифодаи лямбда дар муқоиса бо усули захирашуда аст. Аммо шумо эҳтимолан дар як сол ягон талафоти иҷроишро мушоҳида нахоҳед кард, аз ин рӯ хавотир нашавед.

Хулоса

Нишондиҳандаҳо тағирёбандаҳое мебошанд, ки мустақиман ба суроғаи an object ишора мекунанд, на арзиш. Нишондиҳандаи функсия мустақиман ба суроғаи функсия ишора мекунад, ки метавонад истеъмоли хотираро кам кунад. Java нишондиҳанда надорад, аммо метавонад рафторро бо истифода аз истинодҳои методӣ ё ифодаҳои лямбда тақлид кунад. Истифодаи истинод ба метод нисбат ба даъвати мустақими усул сусттар аст, аммо ин ба истифодаи он халал намерасонад.

indexOf дар Java - Чӣ гуна индекси сатрро дар Java пайдо кардан мумкин аст

Сарчашма: FreeCodeCamp Сатр маҷмӯи аломатҳоест, ки дар нохунакҳои дукарата дохил карда шудаанд. Усули indexOf мавқеи индекси аломат ё зерсатри муайяншударо дар сатр бармегардонад. Дар ин мақола мо дар бораи синтаксиси усулҳои гуногуни indexOf меомӯзем . Мо инчунин мисолҳоро дида мебароем, ки ба шумо дар фаҳмидан ва самаранок истифода бурдани ҷустуҷӯи индекси аломат ё зерсатр дар codeи Java кӯмак мекунанд. Кофе-брейк №116.  Чӣ тавр истифода бурдани нишондиҳандаҳои функсионалӣ дар Java.  indexOf дар Java - Чӣ тавр индекси сатрро дар Java пайдо кардан мумкин аст - 2

Синтаксиси усули indexOf

Усули indexOf дорои усулҳои зерин мебошад:
public int indexOf(int char)
public int indexOf(int char, int fromIndex)
public int indexOf(String str)
public int indexOf(String str, int fromIndex)
Биёед ин параметрҳоро шарҳ диҳем:
  • char як аломатро дар як сатр ифода мекунад.
  • fromIndex мавқеъеро муайян мекунад, ки дар он ҷустуҷӯи индекси аломат ё зерсатр бояд оғоз шавад. Ин муҳим аст, вақте ки шумо ду аломат/сатр дошта бошед, ки дар сатр арзиши якхела доранд. Бо ин параметр, шумо метавонед ба усули indexOf гӯед , ки аз куҷо оғоз кардан лозим аст.
  • str зерсатри дар сатрро ифода мекунад.
Парво накунед, агар шумо то ҳол нафаҳмед, ки ҳамааш чӣ гуна кор мекунад — мисолҳо ҳама чизро равшан хоҳанд кард!

Чӣ тавр истифода бурдани усули indexOf дар Java

Дар мисоли аввал мо индекси як аломатро дар сатр пайдо хоҳем кард. Ин ба мо дар фаҳмидани усули public int indexOf(int char) кӯмак мекунад .

Намунаи усули IndexOf(int Char).

public class Main {
  public static void main(String[] args) {
    String greetings = "Hello World";

    System.out.println(greetings.indexOf("o"));

    // 4
  }
}
Дар codeи дар боло овардашуда мо индекси аломати «o»-ро гирифтем, ки ба мо баргардонида шудааст, ки 4 аст. Мо ду аломати «o» дорем, вале танҳо индекси аломати якум баргардонида шуд. Дар мисоли зерин мо мебинем, ки чӣ тавр мо метавонем индекси дуюми "o" -ро баргардонем. Агар шумо дар ҳайрат бошед, ки чӣ тавр рақамҳои пайдарпай ба даст оварда мешаванд, шумо хоҳед дид, ки аломати якум дар сатр индекси сифр дорад, аломати дуюм индекси як дорад ва ғайра.

Намунаи усули indexOf(int Char, Int fromIndex).

Ин аст мисоле, ки усули int indexOf(int char, int fromIndex) -ро шарҳ медиҳад :
public class Main {
  public static void main(String[] args) {
    String greetings = "Hello World";

    System.out.println(greetings.indexOf("o", 5));

    // 7
  }
}
Дар мисоли дар боло овардашуда, мо ба усули indexOf мегӯем , ки дар индекси панҷум ба кор шурӯъ кунад. H => index 0 e => index 1 l => index 2 l => index 3 0 => index 4 Дар хотир доред, ки шохиси 5 аломати "W" нест. Индекси панҷум фосилаи байни "Салом" ва "Ҷаҳон" мебошад. Ҳамин тариқ, дар ин code ҳамаи аломатҳои дигари пеш аз шохиси панҷум нодида гирифта мешаванд. 7 ҳамчун индекси аломати дуюми "o" баргардонида мешавад.

Намунаи усули Int indexOf(String Str).

Дар мисоли зерин мо мефаҳмем, ки чӣ тавр усули public int indexOf(String str) кор мекунад , ки шохиси зерсатриро бармегардонад.
public class Main {
  public static void main(String[] args) {
    String motivation = "Coding can be difficult but don't give up";

    System.out.println(motivation.indexOf("be"));

    // 11
  }
}
Ман ҳайронам, ки чӣ тавр мо 11-ро баргардонидем? Шумо бояд қисмати охиринро аз назар гузаронед, то бидонед, ки индексҳо чӣ гуна ҳисоб карда мешаванд ва чӣ гуна фосилаҳо байни зерсатрҳо инчунин индексатсия ҳисобида мешаванд. Дар хотир доред, ки вақте ки зерсатри ҳамчун параметр интиқол дода мешавад, индекси баргардонидашуда индекси аломати аввал дар зерсатр мебошад. 11 нишондиҳандаи аломати "б" аст.

Намунаи усули indexOf(String Str, Int fromIndex).

Усули охирин public int indexOf(String str, int fromIndex) - ҳамон усули public int indexOf(int char, int fromIndex) мебошад . Он индексро аз мавқеи муайяншуда бармегардонад.
public class Main {
  public static void main(String[] args) {
    String motivation = "The for loop is used for the following";

    System.out.println(motivation.indexOf("for", 5));

    // 21
  }
}
Дар ин мисол, мо нишон додем, ки усул бояд кори худро дар шохиси панҷум оғоз кунад, ки пас аз зерсатри аввал меояд. 21 шохиси зерсатри дуюми for. Ниҳоят, вақте ки мо аломат ё зерсатри дар сатр нестро мегузарем, усули indexOf -1 бармегардад. Инак як мисол:
public class Main {
  public static void main(String[] args) {
    String motivation = "The for loop is used for the following";

    System.out.println(motivation.indexOf("code"));

    // -1
  }
}

Хулоса

Дар ин мақола мо фаҳмидем, ки чӣ тавр истифода бурдани чор усули indexOf бо мисолҳои равшан. Мо инчунин дидем, ки синтаксиси ҳар яке аз ин усулҳо чӣ гуна аст ва чӣ гуна онҳо индексро бармегардонанд. Илова бар ин, мо тавонистем бифаҳмем, ки ҳангоми интиқоли аломат ё зерсатри мавҷуда ҳамчун параметр чӣ мешавад.
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION