Ir para o conteúdo
nbento.neves

Alterar String dentro de Metodos

Mensagens Recomendadas

nbento.neves

Viva malta,

Estou com uma dúvida:

Como é que eu posso alterar uma string dentro de um método? Eu sei que para fazer isto com variáveis do tipo inteiro por exemplo posso declara-las como objectos correcto?

Ex:

Integer a = new Integer(0); -> ao declarar desta forma no método se alterar o valor de "a" o valor é alterado.

Agora a minha duvida é se é possível fazer isto com o tipo String, o problema e que me esta a deixar confundir é como é que vou declarar uma String como objecto se o java já a identifica como tal. Correcto?

Alguém sabe uma solução?

Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Baderous

Tanto variáveis de tipos primitivos como de tipos referenciados (classes) podem ser alteradas dentro de um método, não percebo qual a tua dúvida. Ainda pensei que fosse relativo ao facto de as strings em Java serem imutáveis.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nbento.neves

Com um exemplo entendes melhor  :confused: eu explico-me muito mal.

Imagina o seguinte:

Main{

String a = "Nuno Neves";

Print("Antes de chamar Metodo conteudo da var a:"+a); //Output "Nuno Neves"

String palavra = AlterarValor(a);

Print("Depois de chamar Metodo conteudo da var a:"+a); //Output "Nuno Filipe Neves"

Print(palavra) //Output "Palavra1";

}

Metodo Static String AlterarValor(String a){

a = "Nuno Filipe Neves";

b = "Palavra1";

return b;

}

---------------------

Eu quero que a var "a" seja seja inicializada com qualquer coisa e que dentro do método altere esse conteúdo e seja "returnado" ao Main.

Notas:

-Poderia usar o return mas o método que tenho já faz return de uma String...por isso é que me dava jeito poder fazer o que te mostrei no exemplo.

Mais uma vez Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KTachyon

Podes sempre enviar um objecto com a String lá dentro:

public class StringContainer { public String string; }

StringContainer x = new StringContainer();
x.string = a;

String palavra = AlterarValor(x);
a = x.string;

String AlterarValor(StringContainer x) {
    x.string = "Nuno Filipe Neves";
    return "Palavra1";
}

Mas, o mais provável é quereres passas um StringBuilder ou um StringBuffer.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.