Duvida inverter string (sem reverse)

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á.

for(int i=0; i>=y.length; i++){   
            y2[i]=y[y.length-i];   
        }   

eu acho que teria que ser y2[i]=y[y.length-1-i];

e no for, i>y.length

saca?

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 ! ^^

sabe prq eu pensei q poderia ser aquilo?

y[y.length-i];

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…

Não pode usar charAt()?

da na mesma, o problema é a logica dele

	public String inverter(String str)
	{
		char strFim[] = new char[str.length()];
		
		int j=0;
		for(int i=str.length()-1;i>=0;i--)
		{
			strFim[j] = str.charAt(i);
			j++;
		}
		return new String(strFim);
	}

para inverter uma String…

Dá na mesma nada… com charAt() fica mais fácil:

[code]public void executa(String entrada){
	
	String saida = "";
	for(int i = entrada.length() - 1; i >= 0; i--){
		saida += entrada.charAt(i);
	}
	System.out.println(saida);
}[/code]

q chato vc cara… da na mesma sim…

um array de char:

y[y.length-i];

ou

uma String:

y.charAt(y.length-i);

Minha opinião, já que trabalha de forma simples com apenas uma variável como índice, além de poder trabalhar diretamente com String.

Respeito é bom. Tá estressadinho por que?

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:

        for(int i=0; i < y.length; i++){  
            y2[i]=y[y.length - 1 - i];  
        }  

Vlww