-
Esta vai ser uma sessão muito curta. Só quero acrescentar um teste adicional
-
que calha funcionar muito bem com os dados dos nomes dos bebés.
-
Esta vai ser uma alternativa ao igual igual (==) que utilizámos anteriormente
-
nos dados dos nomes dos bebés. Agora quero mostrar-vos duas funções que se chamam
-
startsWith (começaCom) e endsWith() (terminaCom). Elas funcionam com strings (cadeias de caracteres). Para explicar
-
vamos dar uma olhada ao código. Tudo isto já vimos antes...
-
abri a tabela, tenho o ciclo, tenho a funcão que olha para cada linha...
-
portanto vamos olhar para o teste (condição) que temos aqui. A primeira parte
-
do teste é igual ao que já vimos antes. Eu digo row.getField("name")
-
para ir buscar o campo 'nome' à linha actual. Anteriormente fizemos
-
examples como: é igual a 'Abby' ou 'Robert' ou o que quer que seja com os iguais (==).
-
A forma como estas funções pode parecer um pouco estranha.
-
Tem um ponto (.) e a seguir escrevemos o nome da função, do lado direito do que queremos comparar.
-
Portanto, pego no nome e imediatamente escrevo um ponto (.) seguido de startsWith (começaCom).
-
Em seguida, dentro dos parentesis podemos pôr qualquer texto.
-
Aqui eu digo 'Ab'. Portanto este teste verifica: será que o nome começa com as letras 'Ab'?
-
E se começar, então a condição é verdadeira. Se não começar, é falsa.
-
É como se lêssemos: o nome começa com 'Ab'?
-
Vamos experimentar! Se eu executar o código, podemos ver que ele percorreu as 2000 linhas
-
e escolheu apenas aquelas que começam com 'Ab'. O teste deu
-
verdadeiro para todas estas. Portanto, o que eu escrever aqui... vamos ter linhas onde o nome
-
começa com isso. Ou seja, podemos testar outros valores
-
vamos experimentar com 'Da'. Não há muitos... Podemos experimentar apenas com um 'A' maiúsculo.
-
Só uma letra. Vamos ter muitos resultados. Muitos nomes começam com a letra 'A'.
-
Se testarmos com um 'a' minúsculo, e executarmos. Não temos resultados nenhuns. O que se passa
-
é que para o computador o 'A' maiusculo e o 'a' minusculo são duas letras diferentes.
-
E os nomes nestes dados que temos começam todos com letra maiúscula
-
e as letras seguintes são minusculas. Ou seja, começar com um 'A' minusculo
-
não dá resultados nenhuns, ao contrário do 'A' maiusculo
-
onde obtemos todos os nomes que começam por 'A'.
-
Podem ver aqui, apenas a primeira letra é maiuscula.
-
Temos de ter isso em atenção no teste. Vamos agora experimentar com um 'Z'.
-
Ele encontra nomes que começam com 'Z', e temos todos estes resultados.
-
Ou podemos diminuir o número de resultados e procurar por 'Za'. Ou restringir ainda mais
-
e procurar aqueles que começam com 'Zai'.
-
Se tentarmos com 'Zaix', voltamos a não encontrar nenhum nome.
-
Assim, é perfeitamente possível fazermos um teste que devolve falso para todas as 2000 linhas.
-
E consequentemente não imprime nada no ecrã. Se reduzir a string para 'Zai' voltamos a ver esses.
-
Esta é a função startsWith (começaCom). Para estes primeiros exemplos vamos utilizá-la
-
sempre desta forma. Vamos à linha do bebé, obtemos o nome dessa linha,
-
e dizemos logo: .startsWith() para comparar o início do nome.
-
Como podem adivinhar, também temos uma função .endsWith (terminaCom), que vai comparar o final do do nome.
-
Se eu disser: termina com um 'z' minusculo e testar...
-
não temos muitos resultados, apenas 3 nomes terminam com um 'z'.
-
Podemos testar com outra letra ou até várias letras...
-
Vou dizer por exemplo, termina com 'ly'... Ou termina com 'la'...
-
Se executar, podemos ver que temos mais resultados.
-
Por acaso estes são todos nomes de raparigas, mas isso é apenas um padrão cultural
-
nos nomes ingleses: se termina em 'la' é provavelmente um nome de rapariga.
-
Estas são apenas mais duas funções.
-
E iremos usá-las para comparar os nomes nos dados que temos dos bebés.
-
Mas também nos vão permitir fazer alguns problemas mais interessantes.