[RUBY] Rechercher la chaîne de caractères B à partir de la chaîne de caractères A (nombre de doublons)

Je souhaite rechercher une certaine chaîne de caractères à partir d'une certaine chaîne de caractères

Je souhaite rechercher "s" dans la chaîne de caractères suivante "t".

filename.rb


s = 'AA'
t = 'abdeeAAbAAAbfde'

Normalement, je suis un imbécile qui a pensé: "Hé, je peux utiliser la méthode de comptage."

filename.rb


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

#Sortie attendue ➡︎ 3
#Sortie réelle ➡︎ 5

Non, je compte juste le nombre de A normalement. Avec la méthode count, même si vous donnez un ensemble de chaînes de caractères à l'argument, il semble qu'un caractère ou un caractère sera recherché.

Je veux rechercher la chaîne de caractères AA car elle peut être dupliquée!

En d'autres termes

  1. Premier compte AA à partir de la gauche
  2. Le premier AA de AAA (AA ← ce A)
  3. Dernier AA (A ceci → AA)

Je veux compter les trois ci-dessus. (Transféré ...! Lol)

Que devrais-je faire

Si vous y réfléchissez en mâchant, la chaîne de caractères abdeeAAbAAAbfde Diviser en ab bd de ee eA AA Ab bA AA AA Ab bf fd de Il est bon de vérifier si elle correspond à la chaîne de caractères AA, de compter si elle est vraie et de ne pas compter si elle est fausse.

※point Spécifiez la plage en faisant bon usage de l'index de la chaîne de caractères

Code réel

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

#Sortie attendue ➡︎ 3
#Sortie réelle ➡︎ 3

terminé!

Que souhaitez-vous savoir

méthode de taille

Vous pouvez compter les chaînes en l'utilisant dans la classe string. Avec la méthode length (qui compte le nombre d'éléments lorsqu'il est utilisé dans la classe Array).

méthode de tranche

Si vous spécifiez une plage avec un argument, la chaîne de caractères de cette plage est renvoyée.

Réflexions

Je pense que la partie "comment supprimer les données nécessaires" est le point de cette fois. Je pense que la partie qui ne sort pas soudainement n'est pas encore l'esprit pour créer l'algorithme. Hmmm difficile.

Recommended Posts

Rechercher la chaîne de caractères B à partir de la chaîne de caractères A (nombre de doublons)
Nombre de caractères en double (sous-chaîne)
[Java] Comment effacer un caractère spécifique d'une chaîne de caractères
Un programme qui recherche une chaîne de caractères, et lorsque la chaîne de caractères de recherche est trouvée, affiche la chaîne de caractères du début de la ligne juste avant la chaîne de caractères de recherche.
Rechercher des mots anglais depuis le terminal
[Java] Jugement de caractères / formatage de la chaîne de caractères (AOJ11 - nombre de caractères)
Supprime après le caractère spécifié de la chaîne de caractères
Comment faire une méthode de jugement pour rechercher n'importe quel caractère dans le tableau
[Android] Comment convertir une chaîne de caractères en resourceId