Duvida em comparacao de caracteres

6 respostas
LPJava

ae! pessoal to montando um jogo aqui porem, fiquei com duvida de como exibir os caracteres que se repetem em uma palavra exemplo:

o jogador tem que adivinhar a palavra ai ele vai e digita A ai verifica se existe A, caso sim ele mostra nas posicoes exatas onde esta a palavra… e dai continuar o jogo.

Bom to com dificuldade de fazer essa parte. Coloquei parte do codigo que tentei, mas so depois que me toquei que li o requisito errado, pq pensei que era para apresentar as palavras frequentes, e agora que vi é para mostrar apenas as frequentes daquela letra

public void buscar(){
	Pattern p = Pattern.compile(word);
	Matcher m = p.matcher(wordSelected);/
	boolean b = false;
	int sizeword = palaselecionada.length();
	if(b=m.find()){
	while(b){		
		int pos=m.start();	
		/* wordtemp = palaselecionada.substring(pos, sizeword);
		System.out.println(palaselecionada.substring(pos, sizeword));
		completeWord(wordtemp);*/
		
		System.out.println("Try again:");
//... mais codigo aqui que ele executa para o cara tentar novamente....

A selecao de palavra vem de uma lista, mas nao importa para duvida. Comentei aquela parte no codigo pq eh onde acho q deve trabalhar para ele buscar as palavras correspondente em toda palavra e depois exibir.
flw!

editado:
quebrando a cabeça aqui conseguir fazer isso:

import java.util.regex.*;
public class regd{

	public static void main(String[] args) {
		Pattern p = Pattern.compile("a");
		Matcher m = p.matcher("obama");
		boolean b = false;
			while(b=m.find()){
				
				System.out.print(m.group());
				
			}
			}
	}

porem minha duvida como imprimiria com espaço?
tipo: a a
alguem tem alguma ideia?

6 Respostas

T

Puxa vida, é mais fácil usar charAt e ==.
No seu caso:

String s = "obama";
char c = 'a';
for (int i = 0; i < s.length(); ++i) {
    if (s.charAt (i) == c) {
        System.out.print ("*");
    } else {
        System.out.print (" ");
    }
}

Moral da história: não use expressões regulares desnecessariamente.

dmandrak

thingol:
Puxa vida, é mais fácil usar charAt e ==.
No seu caso:

String s = "obama";
char c = 'a';
for (int i = 0; i < s.length(); ++i) {
    if (s.charAt (i) == c) {
        System.out.print ("*");
    } else {
        System.out.print (" ");
    }
}

Moral da história: não use expressões regulares desnecessariamente.

Apoiado companheiro!

LPJava

pow pessoal ajudou muito! agora como eu faço tipo!
obama: _ _ a_a
ai ele encontrou com e deixou com os espaco ai peco para o usuario digitar novamente, porem ele está apagando o _ a_a e digita a nova palavra no lugar correto…

teria que armazenar em algo o _a_a ?

flw!

dmandrak

LPJava:
pow pessoal ajudou muito! agora como eu faço tipo!
obama: _ _ a_a
ai ele encontrou com e deixou com os espaco ai peco para o usuario digitar novamente, porem ele está apagando o _ a_a e digita a nova palavra no lugar correto…

teria que armazenar em algo o _a_a ?

flw!

Provavelmente vc teria que:
1- Armazenar a string da palavra e substituir os _ pela letra conforme o cara ia escrevendo
ou (mais bonito pra mim)
2- Fazer uma recursão! Vc armazena um “vetor de chutes”, ou seja, toda vez que o cara tentar vc guarda e depois vc corre esse vetor substituindo na sua string.
a->o->m
__a_a->o_a_a->o_ama-> display o_ama.

Como não é nada pesado, vc pode refazer toda hora, acho eu

LPJava

sinceramente nao entendi! pode explicar melhor. heheh! :smiley:
flw! abraço!

dmandrak

huahuahuauhuah

Desculpa… Vamos por partes :wink:

É o seguinte.

Ou você vai ter que armazenar o que o cara já descobriu até agora, como por exemplo, guardar a string _ _a_a ou você não armazena nada mais que o vetor de chutes dele.

Com o vetor de chutes, vc roda um loop (faz uma recursão) que, enquanto o vetor não acabar, vc ‘chuta’ e guarda, quando acabar, ‘mostra’.

Entendeu?

O problema é que vc vai ter q refazer sempre.

Mas pelo menos o programa se preocuparia com os ‘pormenores’ .

O único código que vc faria era o testaChute(chute, palavraAtual).

Ae na recursão, vc ia, a cada iteração, fazer palavraAtual=testaChute(vetorChutes[i], palavraAtual).

Sacou?

Criado 8 de outubro de 2008
Ultima resposta 8 de out. de 2008
Respostas 6
Participantes 3