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!