Beem pessoal, deve ser algo bem simples, mais como to iniciando agora não consigo resolver nem com a peste :oops:
[code]public class Filtro {
Scanner scan = new Scanner(System.in);
String entrada;
String [] v;
char [] x;
char [] y;
public void executa(){
entrada = "ABBABABACABABABBA";
entrada = entrada.replace("C",",");
v = entrada.split(",");
x = v[0].toCharArray();
y = v[1].toCharArray();
char y2 [] = new char[y.length];
for(int i=0; i>=y.length; i++){
y2[i]=y[y.length-i];
}
System.out.println(y2);
}[/code]
Até a linha 15 tá funcionando tranquis, deve ser a lógica desse for que tá errada. Só não vejo onde. y2 até imprime depois, porém apenas espaços em brancos :S
Quem puder dar uma ajuda ae, agradeço desde já.
Será ? Não entendi porque cara ?
y[y.lenght-i] já percorre a string de trás pra frente completa. E o for eu acho que tá certo, porque como eu falei y2 é impresso até, só qe apenas com espaços em branco e 8 espaços, ou seja, tá do tamanho certo.
Mesmo assim testei aqui com y[y.lenght-1-i] e a saída foi a mesma :S
8 espaços em branco, não entendi porque, pensei que ia dar erro ! ainda não funcionou mas msm assim obrigado ! ^^
y.length é o tamanho total, tipo 8 por exemplo… mas o ultimo indice é o 7, entendeu? como i começa do 0, a primeira vez ia dar um array out of bounds eu creio…
Primeiramente, há 2 erros no seu código, dentro do laço for.
O primeiro:
for(int i=0; i>=y.length; i++){
Está errado. O correto seria
for(int i = 0; i < y.length; i++) {
porque aqui sim voce pega do elementro 0 até o elemento y.length - 1.
O segundo erro está aqui:
y2[i]=y[y.length-i];
porque a primeira iteracao o i é igual a 0 e isso vai fazer voce pegar o elemento y.length do array. Esse elemento não existe. Lembre-se, a contagem começa no 0 e termina o y.length - 1.
Portanto, para funcionar faça assim: