Problemas para atribuir um indice do array a uma variavel

7 respostas
K

Pessoal não consigo atribuir o valor do indice texto[y] a a variavel quant. Estou disponibilizando o codigo abaixo.

public class String2{

public static void main(String[] args){

String texto = args[0];
String busca = "";
String letra = "a";
String quant = "";

	
        for (int i = 0 ; i < texto.length(); i++){

	busca = busca + texto.substring ( i , (i + 1));
		
	     for (int y = 0 ; y < texto.length(); y++){

		 if (texto[y] == letra){

		     quant = quant + string texto[y];

                     }	
	         
                 }
	     		
    }
	System.out.println (busca.replace('a','b'));
	System.out.println (busca.length());
	System.out.println (quant.length());

}
}

//}	

//}

Valeu !!!

7 Respostas

caueda

Apesar de texto ser uma String,
ela não funciona como em C ou Pascal onde você pode acessar os seus caracteres como em um array de char[].
Para fazer o que vc está querendo, mude de texto[y] para texto.charAt(y)

K

Amigo mude de acordo com o q vc falou, mesmo assim ainda não consigo rodar dá o seguinte erro:

G:>javac String2.java
String2.java:18: incomparable types: char and java.lang.String
if (texto.charAt(y) == letra){
^
1 error

G:>

CODIGO:

public class String2{

public static void main(String[] args){

String texto = args[0];
String busca = "";
String letra = "a";
String quant = "";

	
        for (int i = 0 ; i < texto.length(); i++){

	busca = busca + texto.substring ( i , (i + 1));
		
	     for (int y = 0 ; y < texto.length(); y++){

		 if (texto.charAt(y) == letra){

		     //String vogal = texto.charAt(y);
		     quant = quant + texto.charAt(y);
		     
                     }	
	         
                 }
	     		
    }
	System.out.println (busca.replace('a','b'));
	System.out.println (busca.length());
	System.out.println (quant.length());

}
}

//}	

//}
eros.stein

Você está comparando dois tipos diferentes de dados.

texto.charAt(y) == letra

Está comparando um char com uma String.

Altere essa linha:

String letra = "a";

por essa:

char letra = 'a';
Andre_Brito

eros.stein,

Me surgiu uma dúvida quanto ao seu post.
Daria na mesma se eu usasse o método .equals()?

eros.stein

dedejava:
eros.stein,

Me surgiu uma dúvida quanto ao seu post.
Daria na mesma se eu usasse o método .equals()?

O método equals() até onde sei não compara chars.

stringA.equals(stringB);
//retorna true se stringA for igual a stringB e false se não.

Para chars basta usar o operador de igualdade “==”:

if (charA == charB) {...}
//funciona com chars, mas não com Strings.

Era essa sua dúvida?

Andre_Brito

É que eu levei em conta ele deixando o char dele como String.

eros.stein

Mas aí daria erro novamente.

texto.charAt(y) == letra

Se letra fosse String não poderia ser comparado. Se deixasse letra como String e texto também, não teria como ele pegar o char na posição específica, entende? O que poderia ser feito para usar o método equals() seria isso:

for (int y = 0 ; y < texto.length(); y++){ String comp = ""; comp += texto.charAt(y); if (comp.equals(letra)){...} }

Assim poderia ser feito usando o método equals().

Abraço.

Criado 14 de outubro de 2007
Ultima resposta 15 de out. de 2007
Respostas 7
Participantes 4