Aufteilen eines Strings mit der Split-Methode in Java
Arrays werden häufig in Computerprogrammen verwendet, man kann sagen, dass fast alle Programme Arrays unterschiedlichen Typs enthalten. Strukturen. Die einfachste ist die Struktur zusammenhängend von denen alle Operationen mit Ausnahme der Addition nacheinander ausgeführt werden. Das Entfernung wird mit a Zugang Direkt, aber auf muss Machen Sie die Versatz other elements.Das Zählen von Wörtern in einem Kanal character impliziert die Suche nach dem "Leerzeichen". Java macht es uns leichter und hier bemerken wir den Vorteil von objektorientiert, es gibt eine Funktion Vordefiniert split, divide auf Englisch.
Die Methode split verwendet einen regulären Ausdruck als Eingabe. es teilt diese Kanal gemäß dem angegebenen regulären Ausdruck und gibt ein Array zurück , die Teilstrings enthält. Wenn der Ausdruck nicht mit dem übereinstimmt Kanal Das resultierende Array hat nur ein Element.
Wenn wir die Kanal Nächster: I.am.a.programmierer getrennt durch dots, Wir sollten split("\\." ) und nicht (split("." ) false ). Ganz einfach, weil wir gesagt haben, dass die Split-Methode reguläre Ausdrücke als Eingabe verwendet. Wenn Sie keine Kenntnisse haben, schauen Sie einfach im Internet nach. Ich gebe Ihnen den Link direkt:
Reguläre Ausdrücke in Java mit Regex
In unserem Beispiel brauchen wir keine großen Dinge. Wir wollen die Anzahl der Wörter durch eins getrennt zählen" Weltraum" in a Kanal von Charakteren. Es existiert Zwei Möglichkeiten, dies zu erreichen:
1- mit der Funktion split
Die Methode split nimmt die Eingabe an Zeichenfolge, die verarbeitet und ausgegeben werden soll, muss zurückgegeben werden Wortanzahl:int numberwords(Saite string)
Wir erklären ein Gemälde String[] Wörter; , um Teilzeichenfolgen zu speichern. Letzteres empfängt die von split:
words=string.split(" ");
Geben Sie abschließend die Länge der Tabellenwörter zurück:
Rückkehr mots.length;
2- Ohne Die Datei split
Diese Methode scheint länger zu sein, ist es aber nicht notwendig Da Java bereits über die vordefinierte Split-Funktion verfügt. Dies ist ein Plus für diejenigen, die Möchte Zug.Wir deklarieren einen Wortzähler und ein Zeichen.
int n=0;
Zeichen c;
Dann lesen wir alle Zeichen der Kanal und wir testen, ob einer von ihnen ist ein Leerzeichen, ohne die Leerzeichen am Anfang und Ende des Satzes zu zählen. Wenn ja, erhöhen Sie den Zähler.
for(int i = 0; Ich < string.length(); i++){
c = chain.charAt(i);
if(i!=0 & & i!=string.length()-1)
if(c==' ')
n++;
}
Schließlich ist der Zähler gleich 0, wenn die Kanal input ist leer und gleich 1 wenn Der Ausdruck entspricht nicht dem Kanal searched.
Wenn es so ist Überlegen bis 1 bedeutet, dass mindestens ein Leerzeichen vorhanden ist.
if(n> 1)
n++;
Beispiel
" Ich bin Programmierer "Wir addieren 1, weil wir die Leerzeichen dazwischen zählen. Die Wörter( zwischen je zwei Wörtern ein Leerzeichen).
public class WordNumberString {
//mit der vordefinierten Funktion split
static int numberwords(String string){
int n=0;
String[]-Wörter;
//split teilt den String in einen Satz von Wörtern auf
//wenn ein Leerzeichen vorhanden ist, und fügt sie in ein Array ein
words = string.split(" ");
gibt Wörter zurück.length;
}
//ohne die vordefinierte Funktion split
static int nombremots_naive(String string){
int n=0;
char c;
//Durchsuchen Sie die gesamte Zeichenfolge
for(int i = 0 ; i < string.length() ; i++){
//Zeichen für Zeichen
c = string.charAt(i);
//Vermeiden Sie das Zählen von Leerzeichen
//am Anfang und am Ende
//Beispiel: "Ich bin Programmierer"
//Wenn wir diesen Test entfernen, beträgt die Anzahl der Wörter
//6, obwohl wir 4 Wörter haben.
if(i!=0 & & i!=string.length()-1)
if(c==' ')
n++;
}
//wenn die Zeichenfolge nicht leer ist
//wir addieren 1, weil wir
//zählen die Leerzeichen zwischen
//die Wörter, d.h. wenn wir 3 Leerzeichen haben
//dann haben wir 4 Wörter
if(n> 1)
n++;
return n;
}
public static void main(String[] args) {
String string="Ich bin Programmierer";
System.out.println(nombremots_naive(Zeichenfolge));
}
}