2016-08-10 2 views
0

Ich bin neu hier und nicht sehr versiert mit Programmierung, aber bin hier, um zu lernen. Ich verstehe die einfache Schleife für (Initialisierung; Terminierung; Inkrement/Dekremente), aber nicht mit dieser vertraut.Wie funktioniert das Kombinieren?

Was bedeutet diese Initialisierung und Beendigung in der for-Schleife? Wie soll ich das wörtlich lesen?

  1. Ich gehe durch ein Argument Worte sagen [0] = I Worten [1] = Liebe, Worte [2] Apfel
  2. Satz = zugewiesen wird ""
  3. w = Worte [0]
  4. Satz + = w + ""
  5. w = Worte [1]
  6. Satz + = w + ""
  7. w = Worte [2]
  8. ...
  9. beenden
public static String CombineWords(String[] words) { 
    String sentence = ""; 
    for (String w : words) { 
     sentence += w + " "; 
    } 
    return sentence; 
} 

Und hier, wie geht diese Abgrenzung "[] +" funktioniert? Sage ich „Ich liebe apple“

/** 
* Parses a sentence into an array of words 
* @param sentence the string sentence to parse 
* @return an array of words (in the sentence) 
*/ 
public static String[] GetWords(String sentence) { 
    return sentence.split("[ ]+"); 
} 
+0

'[] +' wird als regulärer Ausdruck bezeichnet. Es bedeutet 1 oder mehr Räume. Sie teilen die Zeichenfolge in Whitespace –

+0

off Themen: ahnungslos, warum Zeichenklasse in der Regex verwendet wird. Einfach ein "+" wird funktionieren –

Antwort

0

passieren Wenn ich richtig verstehe, fragen nach, wie Sie die for-Schleife funktioniert, wenn wie folgt erklärt:

for (String w : words) { 

Im Grunde ist es iteriert in Worten die Werte durch Speichern des aktuellen Werts jeder Iteration in der w-Variablen.

So ...

for (String w : words) { 
    sentence += w + " "; 
} 

wie eine Abkürzung ist für

for (int i = 0; i < words.length; i++) { 
    String w = words[i]; 
    sentence += w + " "; 
} 

Im Hintergrund erzeugt es tatsächlich einen Iterator und verwendet diese, aber das ist nicht besonders wichtig/interessant für einen Anfänger.