Olá, qual seria o erro deste codigo?

package inverte;

import javax.swing.JOptionPane;


class Inverte{
     String InverteFrase(String x){
    
    String invertida;
    //String a = "guia do hardware";
    
    for (int i =x.length()-1;i>=0; i--){
      invertida = (x.charAt(i))+ invertida;
    }
    return invertida;
}
  }
/**
 *
 * @author pessoal
 */

public class Main {

   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
       
     
     //JOptionPane.showInputDialog("Digite a Frase a ser invertida");
     String a = InverteFrase("123");
     System.out.println(a);
    
    
    }
}

Olá

Se você postasse a mensagem de erro ajudava muito a te ajudar.

Se mia memoria nao estiver lascada renicializa a string invertida=null:)

Desculpe,
aqui está o erro, que continua o mesmo depois que iniciei invertida com null.

symbol : method InverteFrase(java.lang.String)
location: class inverte.Main
a = InverteFrase(“123”);
1 error
BUILD FAILED (total time: 0 seconds)

Cara o metodo nao é estatico vc nao pode chama-lo assim!!

Estou realmente começando, ainda não entende os tipos de metodos.

Bixo realmente é como te falei ,se nao queres instanciar a classe para depois chamar o metodo então faz assim mao nao vejo sentido.E depois a variável invertida deve ser renicializada.Mas ve a lógica do teu código.

package javaapplication1;

 class Inverte{  
    static  String InverteFrase(String x){  
       
     String invertida=null;  
     //String a = "guia do hardware";  
       
     for (int i =x.length()-1;i>=0; i--){  
       invertida = (x.charAt(i))+ invertida;  
     }  
     return invertida;  
 }  
   }  
 /** 
# * 
# * @author pessoal 
 */  
   
 public class Main {  
   
      
     /** 
      * @param args the command line arguments 
      */  
     public static void main(String[] args) {  
         // TODO code application logic here  
          
        
      //JOptionPane.showInputDialog("Digite a Frase a ser invertida");  
      String a = Inverte.InverteFrase("123");  
      System.out.println(a);  
       
       
     }  
 }  

Continua dando o mesmo erro

package inverte;

import javax.swing.JOptionPane;

class Inverte{
static String InverteFrase(String x){

String invertida=null;
//String a = "guia do hardware";

for (int i =x.length()-1;i>=0; i--){
  invertida = (x.charAt(i))+ invertida;
}
return invertida;

}
}
/**
*

  • @author pessoal
    */

public class Main {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
   
 
 //JOptionPane.showInputDialog("Digite a Frase a ser invertida");
 String a; 
 a = InverteFrase("123");
 System.out.println(a);


}

}

Tente assim:

public class Inverte {
	
	private static String inverteFrase(String x){

		String invertida = "";
		//String a = "guia do hardware";

		for (int i = x.length() - 1; i >= 0; i--){
			invertida += (x.charAt(i));
		}
		return invertida;
	} 

	public static void main(String[] args) {
		String a = inverteFrase("123");
		System.out.println(a);

	}
}

Abraços

EDITADO: Nome de método começa com caixa baixa.

Amigo, você não pode chamar o método assim, como está chamando:

a = InverteFrase("123");

Você deve instanciar a classe que tem esse método e depois chamar o método.
Ex: Vamos supor que sua classe chama-se InverteFraseClass
Então, temos:

InverteFraseClass inverte = new InverteFraseClass();

Depois, pode fazer:

inverte.InverteFrase;

No seu caso, terá de fazer:

Inverte [nome_instancia] = new Inverte(); [nome_instancia.InverteFrase("123");

Espero ter ajudado… Abraço.

[quote=jubei]Continua dando o mesmo erro

package inverte;

import javax.swing.JOptionPane;

class Inverte{
static String InverteFrase(String x){

String invertida=null;
//String a = "guia do hardware";

for (int i =x.length()-1;i>=0; i--){
  invertida = (x.charAt(i))+ invertida;
}
return invertida;

}
}
/**
*

  • @author pessoal
    */

public class Main {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
   
 
 //JOptionPane.showInputDialog("Digite a Frase a ser invertida");
 String a; 
 a = InverteFrase("123");
 System.out.println(a);


}

}
[/quote]
Cara vc nao prestou atenção no meu código amigão!Eu chamo a classe!!!

Não precisa criar um objeto…eu acho que com a própria String a vc consegue…

a.InverteFrase("123");

Mas ficaria melhor criando outro objeto mesmo…

[code]InverteFraseClass inverte = new InverteFraseClass();

inverte.InverteFrase(a);[/code]

Se vc não entender alguma coisa…pergunta aqui que a gente te explica ou recomenda alguma apostila!

[quote=tiidle]Amigo, você não pode chamar o método assim, como está chamando:

…[/quote]

Pode sim, é só o método ser estático.

Obrigado a todos. Deu certo assim, mas a lógica para inverter não funcionou, imprimiu a palavra normalmente.
package inverte;

import javax.swing.JOptionPane;

class Inverte{
static String InverteFrase(String x){

String invertida="";
//String a = "guia do hardware";

for (int i =x.length()-1;i>=0; i--){
  invertida = (x.charAt(i))+ invertida;
}
return invertida;

}
}
/**
*

  • @author pessoal
    */

public class Main {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here

Inverte funcao = new Inverte();
String a = funcao.InverteFrase(“dados”);

System.out.println(a);

}

}

[quote=celso.martins][quote=tiidle]Amigo, você não pode chamar o método assim, como está chamando:

…[/quote]

Pode sim, é só o método ser estático.[/quote]

Realmente…

Poderia se fosse estático!

NESTE CASO…vc não pode chamar o método assim!

class Inverte { public void inverte (String texto) { String invertida = ""; for (int i = texto.length() - 1; i >= 0; i--) { System.out.print(texto.charAt(i)); } System.out.println(); } }

ou

class Inverte { public void inverte (String texto) { String invertida = ""; for (int i = texto.length() - 1; i >= 0; i--) { invertida = invertida + texto.charAt(i); } System.out.println(invertida); } }

Mude ele como quiser…mas assim funciona…

Pronto, assim funcionou.

import javax.swing.JOptionPane;

class Inverte{
static String InverteFrase(String x){

String invertida="";
//String a = "guia do hardware";

for (int i =x.length()-1;i>=0; i--){
  invertida += (x.charAt(i));
}
return invertida;

}
}
/**
*

  • @author pessoal
    */

public class Main {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here

Inverte funcao = new Inverte();
String a = funcao.InverteFrase(“dados”);

System.out.println(a);

}

}

Se funcionou…td bem…

Mas coloque seu código com as tags corretas!

//Assim é bem menos poluído!