JavaRush /Java Blog /Random-IT /Metodo IndexOf della classe String: perché è necessario e...

Metodo IndexOf della classe String: perché è necessario e come funziona

Pubblicato nel gruppo Random-IT
Ciao! I programmatori spesso utilizzano i metodi automaticamente, senza pensare a come funzionano. Queste sono le tecniche di base che devi conoscere.

Che cos'è l'overload del metodo?

Prima di esaminare il metodo menzionato nel titolo, ricordiamo (e qualcuno saprà) cos'è l'overloading del metodo. L'overload dei metodi Java consente di definire due o più metodi con lo stesso nome all'interno della stessa classe. Ciò è possibile solo se hanno parametri di input diversi. In questo caso, i metodi sono chiamati sovraccarichi e il processo stesso è chiamato sovraccarico dei metodi. Il metodo IndexOf della classe String: perché è necessario e come funziona - 1L'overload del metodo è uno dei principi fondamentali del polimorfismo in Java.

A cosa serve un metodo indexOfdi classe ?String

Immagina di avere una lunga stringa. Ad esempio, una lettera e devi trovare il luogo in cui avviene il primo indirizzo al destinatario con un nome che già conosci. Come lo farai? Utilizza il metodo indexOf javadella classe String. Questo metodo è un tipico esempio di sovraccarico del metodo, di cui abbiamo discusso in precedenza.

Opzioni del metodoindexOf

Il metodo java string indexOfha quattro diverse varianti:

N. 1.indexOf(int ch)

Il metodo int indexOf(int ch)restituisce l'indice nella stringa data della prima occorrenza del carattere specificato. In altre parole, otterremo il numero della prima occorrenza di un dato carattere, contando da sinistra a destra. Esempio:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e');
   System.out.println(value);
}
Uscita console:

2
Se il carattere che stiamo cercando non è in questa riga, otterremo -1.
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('j');
   System.out.println(value);
}
Uscita console:

-1
PS Per non confondere nulla, non bisogna dimenticare che i caratteri di una riga non si contano da “1,2,3...”, ma da “0,1,2...”

N. 2.indexOf(int ch, int fromIndex)

Il metodo int indexOf(int ch, int fromIndex)restituisce l'indice in questa stringa della prima occorrenza del carattere specificato, avviando la ricerca dall'indice specificato. Questo metodo è una versione più modernizzata del precedente. La differenza è che indichiamo il numero dell'elemento da cui inizierà effettivamente la ricerca. Esempio:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf('e',5);
   System.out.println(value);
}
Uscita console:

9
Se l'indice da cui verrà condotta la ricerca supera la lunghezza della stringa, la risposta sarà -1. Metodo IndexOf della classe String: perché serve e come funziona - 2Come avrai notato, nella firma di questi due metodi (ciò che i metodi prendono come argomenti), il tipo del simbolo passato è specificato come int, non char. Tuttavia, abbiamo trasmesso char. Questo perché le stringhe vengono archiviate come un array di byte, in cui le celle corrispondono a un carattere specifico di tipo char. La corrispondenza tra i byte charviene effettuata secondo la tabella ASCII. ASCII (codice standard americano per lo scambio di informazioni) è una tabella che mappa i caratteri comuni stampabili e non stampabili in codici numerici. Pertanto, quando viene passato un determinato carattere char, viene automaticamente convertito in un numero che rappresenta quel carattere nella tabella ASCII. In base a ciò possiamo passare direttamente intal metodo il numero ( ) che corrisponde al carattere di cui abbiamo bisogno. Ad esempio, il carattere 'e' nella tabella ASCII corrisponde al numero 101, quindi possiamo ripetere l'esempio precedente, ma senza char:
public static void main(String[] args) {
   String str = "Diego, where is my money?";
   int value = str.indexOf(101,5);
   System.out.println(value);
}
L'output della nostra console non è cambiato:

9
PS In alcuni casi, questi metodi sono intercambiabili, come ad esempio str.indexOf('e');sarà simile - str.indexOf('e', 0);.

Numero 3.indexOf(String str)

Il metodo int indexOf(String str)restituisce l'indice nella riga specificata della prima occorrenza della sottostringa specificata. La differenza fondamentale rispetto alla prima opzione è che questo metodo ricerca già un'intera sottostringa ( String). Grazie a questo, possiamo cercare qualcosa di più specifico. Esempio:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego");
   System.out.println(value);
}
Uscita console:

0
PS Tutte le varianti indexOffanno distinzione tra maiuscole e minuscole: i caratteri maiuscoli (lettere maiuscole) e i caratteri minuscoli (lettere minuscole) sono considerati diversi. Stai attento.

N. 4.indexOf(String str, int fromIndex)

Il metodo indexOf(String str, int fromIndex)restituisce l'indice in questa riga della prima occorrenza della sottostringa specificata, a partire dall'indice specificato. Questa opzione è ancora una volta l'opzione precedente più modernizzata, ma con l'indicazione del luogo da cui verrà effettuata la ricerca. Esempio:
public static void main(String[] args) {
   String str = "Diego, where is my money? Diego,you made me very upset";
   int value = str.indexOf("Diego", 1);
   System.out.println(value);
}
Uscita console:

26
PS Se specifichi un indice di partenza negativo, il metodo indexOflo percepirà come 0. Anche in questo caso il metodo sarà simile al precedente (in cui non è specificato l'indice di partenza). E' tutto per oggi. Ora hai più conoscenze grazie a indexOfJava!
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION