Comparar String's

Galera estou querendo pega a String nome que já vem preechida e comparar se nesse nome contem caracter especial se tiver ele irá mandar a msg

fiz esse metodo abaixo mais não funciona como deveria alguém pode ajudar como eu devo comparar nesse if dentro do for para se conter algum

caracter ele printa a mensagem

public static String caracteresEspeciais(String nome) {
		String []caractersEspeciais = {"'", "!", "@"};
		char[] arrayNomes = nome.toCharArray();		
		    for (int i = 0; i < arrayNomes.length; i++){ 
		    	if(arrayNomes.equals(caractersEspeciais)){
		    		System.out.println("Erro Contem caracter especial");  
		    		
	        	}		
		}				
		return nome;
	}

Use algum metodo da propria classe String.

public static String caracteresEspeciais(String nome) {

if(nome.contains("@"))
{}
else
{}

Se tiver alguma duvida posta aí!
=)

Abraço!

então Galileo.gt

fiz conforme abaixo mais não deu certo tem sabe o que deve alterar ai ?

	public static void main(String[] av) {
		String nome = "R@bson";
		String []caractersEspeciais = {"@","!","#"};
	    for (int i=0; i < nome.length(); i++){
	    	if(nome.contains(caractersEspeciais.toString())){
	    			System.out.println("Contem Especial");
	    		}else{
	    			System.out.println("Sem especial");
	    		}
	    	}
	    }

Não, tem que mudar a logica daí. Algo do tipo:

public static  void main(String[] av) 
{  
	String nome = &quot;R@bson&quot;;  
	String []caractersEspeciais = {&quot;@&quot;,&quot;!&quot;,&quot;#&quot;};  

	for (int i=0; i &lt; caractersEspeciais.length; i++)
	{  
		if(nome.contains(caractersEspeciais[i]))
		{
			System.out.println(&quot;Contem Especial&quot;);
			break;
		}
		else
		{
			 //System.out.println(&quot;Sem especial&quot;);  
		}
	}
}  

Nao teste, talvez precise ajustar algo

então,
testei porém ainda não esta funcionando ele esta percorrendo apenas 2 posições e não todas as posições até encontrar o caracter

alguém tem alguma sugestão segue como esta o main

	public static void main(String[] av){
	String nome = "Robs@n";
	String []caractersEspeciais = {"@","!","#"};

	for (int i=0; i < caractersEspeciais.length; i++){
		if(nome.contains(caractersEspeciais[i])){
			System.out.println("Contem Especial");
			 System.out.println("Posição " + i + " is " + nome.charAt(i));
		break;
		}
		else{
			System.out.println("Sem especial");
			System.out.println("Posição " + i + " is " + nome.charAt(i));
			}
		}
	} 

O que voce quer? A posicao em que ele encontrou o char especial??

isso esta errado: System.out.println("Posição " + i + " is " + nome.charAt(i));

Voce precisa de outra coisa:

nome.indexOf(caractersEspeciais[i]);

Não eu quero que ele percorre toda a string e caso encontre algum caracter especial printa que existe caractar na String e para a execução
isso System.out.println("Posição " + i + " is " + nome.charAt(i)); eu coloquei apenas para um teste mais isso ta fora

não sei o que esta tb porque quando ele executar as posições 0,1,2 usando essa String nome ai que tem 6 posições ele termina a execução antes de percorrer toda ela

Veja se te atende:

	public static void main(String[] av) {
		String nome = &quot;Robs@n&quot;;
		String caractersEspeciais = &quot;@!#&quot; ;

		String c;
		for (int i = 0; i &lt; nome.length(); i++) {
			c = String.valueOf(nome.charAt(i));
			if (caractersEspeciais.contains(c)) {
				System.out.println(&quot;Contém Especial&quot;);
				System.out.println(&quot;Posição &quot; + i + &quot; is &quot; + nome.charAt(i));
				break;
			} else {
				System.out.println(&quot;Sem especial&quot;);
				System.out.println(&quot;Posição &quot; + i + &quot; is &quot; + nome.charAt(i));
			}
		}
	}

Dê uma olhada nas classes Matcher e Pattern.

creio que é isto que vc procura

public static void main(String[] av) {
        String nome = "Robso@";
        String[] caractersEspeciais = {"@", "!", "#"};

        for (int i = 0; i < caractersEspeciais.length; i++) {
            if (nome.contains(caractersEspeciais[i])) {
                System.out.println("Caracter: " + caractersEspeciais[i]);
                System.out.println("Posicao: " + nome.indexOf(caractersEspeciais[i]));
                break;
            }
        }
    }

fvslistas era isso mesmo que eu precisava

valeu mesmo pela ajuda topico resolvido quem tiver a mesma duvida que eu esta ai prontinho.

obrigado.

Cara, acho que você poderia ter feito isso utilizando Pattern.

Com o Pattern você especifica uma lista de símbolos/letras, manda ele procurar na String e verifica se algo foi encontrado, acho que é uma mais profissional.

Alguns links, caso você se interesse:

http://reference.wolfram.com/legacy/v5/TheMathematicaBook/PrinciplesOfMathematica/StringsAndCharacters/2.8.3.html
http://java.sun.com/docs/books/tutorial/essential/regex/pattern.html
http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html

Fica a dica ai!