Rastreador de strings – índices, substrings e algoritmos com strings
ComputaçãoAlgoritmos e resolução de problemasIdades 15–16
Carregando…
Entre para usarUma string é desenhada como uma fileira de células de caracteres com índices a partir de 0. O modo Operações com strings trata de concatenação, comprimento, caractere em um índice, substring ou fatia [a, b) sem o índice final, busca (indexOf), equals, compareTo, maiúsculas/minúsculas, substituir, dividir e códigos de caractere, com os resultados em pseudocódigo, Python e Java lado a lado, inclusive erros de índice. O modo Algoritmos com laços executa passo a passo contar um caractere, inverter, verificar um palíndromo e a busca ingênua com um teste de mesa, e o último modo conta as comparações da busca ingênua contra Boyer–Moore.
Aula: Strings: índices, fatiamento e substring, métodos de strings e percurso de strings
O que mostra
Uma string é uma sequência imutável de caracteres, cada um com um índice que começa em 0. A fatia s[a:b] do Python e s.substring(a, b) do Java incluem o índice a e excluem o b, então devolvem b − a caracteres; o Java lança uma exceção quando um índice está fora do intervalo, enquanto o fatiamento do Python corta os índices. Métodos como upper, replace e split devolvem strings novas. Os algoritmos com laços percorrem os caracteres um índice por vez, e um teste de mesa registra cada passo. Boyer–Moore compara o padrão a partir da direita e salta para frente após uma falha.
Como usar
Digite uma string s (e t, r ou c quando pedido). Em Operações com strings, escolha uma Operação, arraste a e b e compare os resultados em Pseudocódigo, Python e Java; marque Mostrar códigos dos caracteres para ver os valores ASCII/Unicode. Em Algoritmos com laços, escolha um Algoritmo e a linguagem em Código, clique em Passo ou Executar e acompanhe a linha destacada e o teste de mesa. Em Ingênua vs Boyer–Moore, avance as duas buscas e compare suas contagens.
Parâmetros que você pode mudar
- Modo Operações com strings, Algoritmos com laços, Busca: ingênua vs Boyer–Moore
- Operação s + t (concatenação), comprimento, caractere no índice a, substring / fatia [a, b), buscar t (find / indexOf), igualdade (equals), comparar (compareTo), para maiúsculas, para minúsculas, substituir t por r, dividir em c, código do caractere (ord / chr)
- Algoritmo contar um caractere c, inverter a string, verificar palíndromo, busca ingênua de substring
- Linguagem do código Pseudocódigo, Python, Java
- String s
- Segunda string t (padrão)
- Substituição r
- Caractere c
- Índice a 0–28
- Índice b 0–28
- Mostrar códigos dos caracteres
- Velocidade 0,5–10 passos/s
Perguntas para explorar
- Por que s.substring(2, 5) devolve 3 caracteres, e o que acontece no Java e no Python se b for maior que o comprimento?
- Por que "apple".compareTo("Apple") dá um número positivo?
- Por que Boyer–Moore precisa de menos comparações que a busca ingênua quando o padrão é longo?