2 perguntas sobre strings

13 respostas
C

Sou iniciante em java.

1° Como apagar completamente uma stringBuffer?

2° Como faz um programa que vaculhe varias estrings procurando para saber se tem aquele valor igual numa lista ?

13 Respostas

eltonk

A primeira pergunta é facil =)

sbuffer.delete(0, sbuffer.length());

A segunda não entendi… :oops:
Pode ser mais claro? :stuck_out_tongue:

Abraços,

C

claro :slight_smile:

é o seguinte…vou ter uma stringbuffer com o valor de 123 (só para exemplo)

e vou ter ima linklist com os valores[345,567,444,890]

ai ele precisa verificar se a stringbuffer 123, não esta contida dentro desta lista…no caso não está…mas como ele compara ?

obrigado pela ajuda

eltonk

Algo como isso vc está dizendo?

public class TesteStringBuffer {
	public static void main(String[] args) {
		StringBuffer sbuffer = new StringBuffer();
		sbuffer.append("123");
		String[] link = {"567", "432", "444", "123"};
		for (int i = 0; i < link.length; i++){
			if (sbuffer.toString().equalsIgnoreCase(link[i])){
				System.out.println("Contém");
				return;
			}
		}
		System.out.println("Não contém");
	}
}

Se for, eu não vejo a necessidade de utilizar um StringBuffer ali…
Você não estará modificando este valor várias vezes…

Abraços,

C

é que foi um exemplo, mas os valores que eu vou adicionar na lista são stringbuffer.

E tambem dentro da lista eu nao sei o que vou ter lá dentro, vou ter varios valores que foram colocados

eltonk

então vc vai ter q fazer algo +/- assim…

public class TesteStringBuffer {
	public static void main(String[] args) {
		StringBuffer sbuffer = new StringBuffer();
		sbuffer.append("123 ");
		sbuffer.append("256 ");
		StringTokenizer st = new StringTokenizer(sbuffer.toString());
		System.out.println(sbuffer.toString());
		String[] link = {"567", "432", "444", "256"};
		String aux = "";
		while (st.hasMoreElements()) {
			aux = st.nextToken();
			for (int i = 0; i < link.length; i++) {
				if (aux.equalsIgnoreCase(link[i])) {
					System.out.println("Contém");
					return;
				}
			}
		}
		System.out.println("Não contém");
	}
}

Lembrando que o StringBuffer não é nada mais que uma String, então para percorrer os seus valores vc deve colocar um delimitador, que no meu caso foi o espaço em branco mesmo. Caso vc tenha frases, escolha um outro delimitador, como por exemplo o * ou :

Era essa a sua questão? :stuck_out_tongue:

[]'s

C

Poxa obrigado pela ajuda, só uma coisa.

O dado que eu vou retirar para verificar é o seguinte:

Matriz.append(arvore.removeFirst());

Então em Matriz está o que eu quero verificar (retirado da fila arvore)

Ai os dados dados que eu vou comparar vão estão dentro da fila chamada “visitados” que é uma LINKLIST

linklist visitados = new linklist()

Como adeguar este programa para isto ?

Desculpe perguntar mais, mas realmente eu ainda tenho serios problemas com java… :cry:

C

Xiii...to perdido...!!!

Tentei fazer aqui do meu jeito...mas da OUTOFMEMORY rapidinho

public boolean visitados()
   {
     StringBuffer Buffer= new StringBuffer();
     StringBuffer Buffer_visita= new StringBuffer();

     int temp,x=0;
     Buffer.append(Matriz);
     temp=visitados.size();
     if(temp>0)
     {
       for (int i = 0; i < temp; i++)
       {
         if (x == 0)
         {
           Buffer_visita.append(visitados.removeFirst());
           if ( (String.valueOf(Buffer)).equals(Buffer_visita))
           {
             x = 1;
             visitados.add(Buffer_visita);
           }
           else
           {
             visitados.add(Buffer_visita);
             x = 0;
           }

         }
       }
     }

     if(x==1)
     {
       return true;
     }
     else
     {
       visitados.addLast(Buffer);
       return false;
     }



   }

Acho que as listas estão ficando lotadas rapido!!!

Qual é o tamanho maximo de um LINKLIST ??????????????

M

…o tamanho máximo é a sua memória disponivel! :lol: , com tantos objetos em matrizes, e strings buffers… vai ligeirinho… :roll:

C

poxa…então to mal !!!

Como escapar disto ? Como fazer um programa que faça a mesma coisa que este codigo, mas que ocupe menos memoria ???

O negocio é serio, preciso entregar o trabalho para a faculdade!!

C

este programa que eu fiz nao es´ta funcionando !!!

a fila de visitados não passa de um elemento…

Alguem me ajda !!!

C

usei o .clone() para substituir o .removefirst() ai rodou bem, mas não é isto que eu quero (o clone só pega um elemento não é?)…quero verificar a lista inteira…não entendo os programas passados no começo para fazer esta modificação…

:cry: :cry: :cry: :cry:

eltonk

Agora eu me perdi ahuauhahuhauhauh

Vc quer retirar o primeiro elemento da tua matriz e comparar com toda a tua linklist?
:confuso:

C

“eltonk”:
Agora eu me perdi ahuauhahuhauhauh

Vc quer retirar o primeiro elemento da tua matriz e comparar com toda a tua linklist?
:confuso:

O que eu estou fazendo é retirar este elemento, comparar ele e
devolve-lo…caso o valor retirado seja diferente ao comparado eu volto aquele valor retirado e ainda adiciono este novo valor para posterior comparação.

Mas eu estou fazendo isto, pq desconheco das capacidades do java…

eu gostaria que ele fizesse a mesma coisa, porem sem retirar o elemnto da fila…apenas pergorrendo ela e comparando com o valor que eu tenho em Matriz, caso o valor não esteja nesta lista, ele deve adicionar este valor na lista e volta e retorna um false (informando que nao achou esta matriz na lista) case ache retorna um true.

Isto eu to fazendo para não repetir valores no meu programa, ele pega um estado da matriz e aplica regras de moviemtação, mas eu não quero fazer isto com valores que eu já trabalhei.

Deu para entender agora?
Infelizmente to fazendo assim, pq nao sei java ! :frowning:

Criado 12 de maio de 2004
Ultima resposta 14 de mai. de 2004
Respostas 13
Participantes 3