Olá pessoal, boa tarde.
Tenho uma String Nome = “Maria”.
E um char letra = ‘o’;
Como faço para adicionar esse char em uma determinado posição da String Nome?? Ex: Nome[4] = letra;
Muito obrigado.
Fabricio da Silva Soares
Olá pessoal, boa tarde.
Tenho uma String Nome = “Maria”.
E um char letra = ‘o’;
Como faço para adicionar esse char em uma determinado posição da String Nome?? Ex: Nome[4] = letra;
Muito obrigado.
Fabricio da Silva Soares
StringBuffer buff = new StringBuffer( "Maria" );
buff.insert(4, 'o');
[quote=“umcertoalguem”]Tenho uma String Nome = “Maria”.
E um char letra = ‘o’;
Como faço para adicionar esse char em uma determinado posição da String Nome?? Ex: Nome[4] = letra;
[/quote]
A rigor você não consegue fazer isso porque Strings são objetos “imutáveis”.
O que você faz na verdade é copiar o conteúdo para algum outro objeto, (de preferência para um StringBuffer, que é “mutável”, mas você também pode usar um char[]), efetuar a alteração, e criar uma nova String.
Cuidado: StringBuffer.insert, como o nome diz, insere alguma coisa; não a substitui.
class Test125 {
public static void main(String[] args) {
String nome = "Maria";
//-- Primeira forma - usando StringBuffer
StringBuffer sbNome = new StringBuffer(nome); // criou-se aqui um StringBuffer
sbNome.setCharAt(4, 'o');
nome = sbNome.toString(); // criou-se aqui uma nova String
System.out.println (nome); // Imprime "Mario"
//-- Segunda forma - usando char[]
char[] chNome = nome.toCharArray(); // aqui se criou um char[]
chNome[4] = 'e';
nome = new String(chNome); // criou-se aqui uma nova String
System.out.println (nome); // Imprime "Marie"
}
}
E é claro tem o jeito “VB” de fazer, que obviamente não recomendo - Java não é VB e Bill Joy (da Sun) não é Bill Gates (de Marte? ).
String nome = “Maria”;
nome = nome.substring(0,4) + “o”;
Essa operação inocente cria um monte de objetos:
Ou seja, em vez de criar 2 objetos como foi mostrado acima, o jeito VB de fazer cria 3.