Duvida - Posição String

Galera to com uma dúvida sobre string…
Eu estou acostumado com C, e lá pra atribuir uma frase ou palavra uso vetor/matriz de Char…

Minha duvida é a seguinte:
Assim como eu fazia no C usando vetor de char tem como fazer em Java pra fazer referencia a uma posição da string?
Por exemplo em C se quizesse fazer

char vetPalavra[] = "palavra"; vetPalavra[0] = 'P';
Resumindo… consigo alterar somente um caracter ou pedaço desejado!
É possivel fazer isso usando String me Java? ou terei que usar Char também?
Obrigado!

Em resumo, não é possível… não oficialmente falando, pelo menos.

Strings em Java são objetos imutáveis…você não altera depois que cria…
No máximo você cria uma outra, a partir da original, com alguma alteração.

Há algumas maneiras para se fazer isso:

  • Utilizar a classe StringBuilder para fazer isso. Ela tem métodos apropriados pra esse tipo de alteração.

  • Transformar a String em array (.toCharArray), alterar o valor e recriar a String usando o array no construtor.

Ola, segue abaixo meu exemplo:

	public  void retornaChar ( ) {
	    char cArray []= {'A','b','c','d'};
	    cArray [1] = 'y';
	    String testeRecebeChar = String.valueOf(cArray);
	    System.out.println(cArray[1]);
	    System.out.println(testeRecebeChar);
	}

tem um exemplo mais completo em http://trivial.4host.com.br/blog/alterar-caracter-em-char-array-e-converter-em-string-java/

espero te ajudado

ao inves de usar vetor de char… num eh melhor usar uma String??? para pegar a posição é só ‘nomestring’.charAt(index)…

Ola,

Mas pelo que eu entendi ele quer modificar um determinado character, em uma posiçao especifica. Se for só pegar o char da posição sim, melhor String com charAt ou se for mais de um character usar subString.

[]´s

[quote=AbelBueno]Em resumo, não é possível… não oficialmente falando, pelo menos.

Strings em Java são objetos imutáveis…você não altera depois que cria…
No máximo você cria uma outra, a partir da original, com alguma alteração.

Há algumas maneiras para se fazer isso:

  • Utilizar a classe StringBuilder para fazer isso. Ela tem métodos apropriados pra esse tipo de alteração.

  • Transformar a String em array (.toCharArray), alterar o valor e recriar a String usando o array no construtor.[/quote]
    AbelBueno valeu cara, vou dar uma pesquisada! :wink:

[quote=cardosao]Ola, segue abaixo meu exemplo:

public void retornaChar ( ) { char cArray []= {'A','b','c','d'}; cArray [1] = 'y'; String testeRecebeChar = String.valueOf(cArray); System.out.println(cArray[1]); System.out.println(testeRecebeChar); }
tem um exemplo mais completo em http://trivial.4host.com.br/blog/alterar-caracter-...ay-e-converter-em-string-java/
espero te ajudado[/quote]
cardosao ajudou e muito parceiro. Achei bem simples de usar valeu!

els1234 valeu cara, também vai ser possível utilizar o .charAt()
Mais uma dúvida teria como inserir uma palavra dentro de uma frase através do charAt? ou somente 1 caracter?

Obrigado galera!