Heim  >  Artikel  >  So speichern Sie String-Tokens in einem Array

So speichern Sie String-Tokens in einem Array

王林
王林nach vorne
2024-02-09 13:30:151275Durchsuche

Der PHP-Editor Strawberry zeigt Ihnen, wie Sie String-Tags in einem Array speichern. Während der Programmierung müssen wir häufig Zeichenfolgen verarbeiten und sie in mehrere Token aufteilen. Das Speichern dieser Tags in einem Array erleichtert uns die Verarbeitung und Bearbeitung. In diesem Artikel wird ausführlich erläutert, wie Funktionen und Methoden in PHP verwendet werden, um diese Funktion zu implementieren, damit die Leser sie besser verstehen und verwenden können. Egal, ob Sie Einsteiger oder erfahrener Entwickler sind, in diesem Artikel erhalten Sie nützliches Wissen und praktische Tipps. Lass uns anfangen!

Frageninhalt

Ich habe auf einige Beispiele verwiesen, um jeden Teil der Benutzereingabe erfolgreich zu extrahieren. Es kann jedoch nur einmal zurückgezogen werden. Es sollten zwei Schleifen zum Extrahieren mehrerer Eingaben und zum Speichern der Markierungen in einem Array vorhanden sein. Ich stecke in einem Array fest, was soll ich tun?

question:
write a program that accepts string tokens in the format of token1:token2:token3:token4 , where : is used as delimiter to separate tokens. there should be two functions, ingest and appearance.

ingest takes a string, and stores it in the collection.

appearance takes a string as input . it returns a normalized value
between 0 to 1,  where the value represents the percentage of
appearances of stored tokens which have input as the prefix.

state the space and time complexity of your solution.


Erwartete Ergebnisse:

ingest('mcdonal:uk:employeea')
ingest('mcdonal:hk:employeea')
ingest('mcdonal:hk:employeeb')
ingest('mcdonal:hk:employeec')
ingest('fastfood')

appearance('mcdonal')
# > 0.8
appearance('mcdonal:hk')
# > 0.6

Mein Code:

String input;
   
        
 // For user input
 Scanner sentense = new Scanner(System.in);
 input = sentense.nextLine();   
 String[] ingestWords = {};
       
             
 // Use ':' to seperate input
 StringTokenizer st = new StringTokenizer(input, ":");
 while(st.hasMoreTokens()) { 
   System.out.println(st.nextToken());
 }

Lösung

Ich empfehle Ihnen, Ihr Problem in zwei Schritten zu lösen.

Erstens der Aufnahmeteil: Sie müssen vom Benutzer eingegebene Wörter akzeptieren und jedes Wort in arraylist98c455a79ddfebb79781bff588e7b37e statt in einem Array fester Größe speichern, da Sie nicht im Voraus wissen, wie viele Eingaben Sie erhalten werden.

Beispielcode wird unten angezeigt.

public static void main(string[] args) {
    string input;
    list<string> ingestwords = new arraylist<>();

    scanner sentence = new scanner(system.in);
        
    while (sentence.hasnext()) {
        input = sentence.next();
            
        if (input.equals("exit")) { // to stop receiving input
            break;
        }
            
        ingestwords.add(input);         
    }
    sentence.close();
}

Zweitens der Teil mit dem Erscheinungsbild: Bei einer gegebenen Zeichenfolge müssen Sie die Liste der Wörter aus dem Aufnahmeteil iterieren und prüfen, welche Wörter mit der angegebenen Zeichenfolge beginnen.

Zum Beispiel können Sie eine Hilfsfunktion wie diese erstellen.

void hasPrefix(String word, String str) {
    return word.startsWith(str);
}

Wenden Sie diese Funktion auf die Anzahl der Wörter an, denen ingestwords 中的每个单词,将为您提供以 str vorangestellt ist. Daraus können Sie den Prozentsatz der Vorkommnisse ermitteln.

Das obige ist der detaillierte Inhalt vonSo speichern Sie String-Tokens in einem Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen