[RUBY] Suchen Sie nach Zeichenfolge B aus Zeichenfolge A (doppelte Anzahl)

Ich möchte nach einer bestimmten Zeichenkette aus einer bestimmten Zeichenkette suchen

Ich möchte nach "s" aus der folgenden Zeichenkette "t" suchen.

filename.rb


s = 'AA'
t = 'abdeeAAbAAAbfde'

Normalerweise bin ich ein Dummkopf, der dachte: "Hey, ich kann mit der Zählmethode gehen."

filename.rb


s = 'AA'
t = 'abdeeAAbAAAbfde'
puts t.count(s)

#Erwartete Leistung ➡︎ 3
#Istleistung ➡︎ 5

Nein, ich zähle normalerweise nur die Anzahl von A. Selbst wenn Sie dem Argument eine Reihe von Zeichenfolgen zuweisen, wird bei der count-Methode anscheinend ein Zeichen oder ein Zeichen durchsucht.

Ich möchte nach der Zeichenfolge AA suchen, da sie dupliziert werden kann!

Mit anderen Worten

  1. Erste AA-Zählung von links
  2. Das erste AA von AAA (AA ← dieses A)
  3. Letzte AA (A diese → AA)

Ich möchte die obigen drei zählen. (Übertragen ...! Lol)

Was soll ich machen

Wenn Sie beim Kauen darüber nachdenken, wird die Zeichenkette abdeeAAbAAAbfde Teilen Sie in ab bd de ee eA AA Ab bA AA AA Ab bf fd de Es ist gut zu überprüfen, ob es mit der Zeichenfolge AA übereinstimmt, zu zählen, ob es wahr ist, und nicht zu zählen, wenn es falsch ist.

※Punkt Geben Sie den Bereich an, indem Sie den Index der Zeichenfolge gut nutzen

Tatsächlicher Code

filename.rb



s = 'AA'
t = 'abdeeAAbAAAbfde'

result = 0

(0..(t.size - s.size)).each do |i|
  substring = t.slice(i, s.size)


  if substring == s
    result += 1
  end
end

puts result

#Erwartete Leistung ➡︎ 3
#Tatsächliche Ausgabe ➡︎ 3

erledigt!

Was du wissen musst

Größenmethode

Sie können Zeichenfolgen zählen, indem Sie sie in der Zeichenfolgenklasse verwenden. Zusammen mit der Längenmethode (die die Anzahl der Elemente zählt, wenn sie in der Array-Klasse verwendet werden).

Slice-Methode

Wenn Sie einen Bereich mit einem Argument angeben, wird die Zeichenfolge dieses Bereichs zurückgegeben.

Reflexionen

Ich denke, der Teil "wie man die notwendigen Daten herausschneidet" ist der Punkt dieser Zeit. Ich denke, dass der Teil, der nicht plötzlich herauskommt, noch nicht der Verstand ist, den Algorithmus zu erstellen. Hmmm schwer.

Recommended Posts

Suchen Sie nach Zeichenfolge B aus Zeichenfolge A (doppelte Anzahl)
Doppelte Anzahl von Zeichen (Teilzeichenfolge)
[Java] So löschen Sie ein bestimmtes Zeichen aus einer Zeichenfolge
Ein Programm, das nach einer Zeichenfolge sucht und die Suchzeichenfolge gefunden hat, zeigt die Zeichenfolge vom Zeilenanfang bis kurz vor der Suchzeichenfolge an.
Suchen Sie nach englischen Wörtern vom Terminal
[Java] Zeichenbeurteilung / Zeichenfolgenformatierung (AOJ11 - Zeichenanzahl)
Löscht nach dem angegebenen Zeichen aus der Zeichenfolge
So erstellen Sie eine Beurteilungsmethode, um nach einem beliebigen Zeichen im Array zu suchen
[Android] So konvertieren Sie eine Zeichenfolge in resourceId