2016-10-17 2 views
-5

Ich habe einen String namens say String s im unteren Code. Dieser String enthält eine Phrase, d. H. Ein oder mehrere Wörter, die durch einzelne Leerzeichen getrennt sind. Dieses Programm berechnet und gibt das Akronym dieser Phrase zurück.Was bedeutet s.split ("\ s +") hier im folgenden Code?

import java.math.*; 
import java.util.*; 
import static java.util.Arrays.*; 
import static java.lang.Math.*; 
public class Initials { 
    public String getInitials(String s) { 

    String r = ""; 
    for(String t:s.split("\\s+")){ 
     r += t.charAt(0); 
    } 
    return r; 
    } 


    void p(Object... o) { 
      System.out.println(deepToString(o)); 
     } 


} 

Beispiel: "John Fitzgerald Kennedy"

Rückkehr: "jfk"

+2

Welche Dokumentation sagt Ihnen? http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String) – talex

+0

Siehe diesen Link wird Ihnen helfen. http://stackoverflow.com/questions/225337/how-do-i-split-a-string-with-any-whitespace-chars-as-delimiters –

Antwort

1

Es bedeutet einfach: in Scheiben schneiden die Eingabezeichenfolge s auf dem angegebenen regulären Ausdruck.

Dieser reguläre Ausdruck sagt einfach: "ein oder mehrere Leerzeichen". (here für eine umfangreichen Beschreibungen sehen, was diese Muster bedeuten)

So: dieser Aufruf zu Split gibt einen Array mit „John“, „fitzgerald“, ... Das Array ist direkt „verarbeitet“ mit dem for- jede Art von for-Schleifen.

Wenn man dann das erste Zeichen jeder dieser Zeichenfolgen auszuwählen, landet man mit „jfk“

5

split("\\s+") wird die Zeichenfolge in der Zeichenfolge Array mit Sichter als Raum oder mehrere Räume aufgeteilt. \s+ ist ein regulärer Ausdruck für ein oder mehrere Leerzeichen.