Metodo insert da classe StringBuilder[RESOLVIDO]

3 respostas
ThiagoNogueira

Boa noite pessoal!!!

Sou novo aqui no forum e em java e gostaria de tirar uma duvida.

Procurei ja no doc do site da sun, mas ainda nao ficou mto claro pra mim, o que exatamente faz o metodo insert da classe StringBuilder? Vou postar o codigo completo para vcs entenderem melhor minha duvida.

class Mutate {
	public static void main(String [] args) {
		StringBuilder s = new StringBuilder("012345678 ");
		if (s.length() == 10)
			s.insert(10, "abcdef");
		s.delete(3,8);
		System.out.println(s.indexOf("c"));
	   
	}
	
}

Neste caso, o que exatamente ele esta fazendo?

Desde ja agradeço a atenção de todos!

Att,
Thiago Nogueira

3 Respostas

Josemar_Jobs

cria o StringBuilder, e considerando que o indice começa de zero, então o ultimo indice, que é do espaço em branco, será 9, mas o size dela será 10

StringBuilder s = new StringBuilder("012345678 ");

aqui insere “abcdef”, depois do ultimo indice do StringBuilder, que é o indice 10

s.insert(10, "abcdef");

e aqui elimina o 3,4,5,6,7 visto que eles estão no intervalo [3,8], e lembrando que ele elimina de 3 até 8-1

s.delete(3,8);

e aqui, simplesmente imprime o indice da primeira ocorrencia da substring passada como argumento

System.out.println(s.indexOf("c"));
ThiagoNogueira

Josemar!!! Obrigado cara.

Entendi perfeitamente.

Vlw…abraços

andeb
Josemar Jobs:
cria o StringBuilder, e considerando que o indice começa de zero, então o ultimo indice, que é do espaço em branco, será 9, mas o size dela será 10
StringBuilder s = new StringBuilder("012345678 ");
aqui insere "abcdef", depois do ultimo indice do StringBuilder, que é o indice 10
s.insert(10, "abcdef");
e aqui elimina o 3,4,5,6,7 visto que eles estão no intervalo [3,8], e lembrando que ele elimina de 3 até 8-1
s.delete(3,8);
e aqui, simplesmente imprime o indice da primeira ocorrencia da substring passada como argumento
System.out.println(s.indexOf("c"));
Desculpe-me caso eu entendi errado, mas ele não elimina as posições no insert, somente jogas x casas a frente, exemplo:
builder.append("a");
builder.append("b");
builder.append("c");
builder.append("e");

int position = builder.indexOf("e");
builder.insert(position, "d");

System.out.println(builder.toString()); // imprime abcde
Edit: esqueci o que eu disse, total falta de atenção -.-" Pra não fica devendo também apresento o método replace(), onde é definido da mesma forma que o delete, informando posição de começo e de fim, porém com um argumento a mais que é a String que deve-se ser utilizada no lugar desses caracteres, essa String não precisa ter o mesmo tamanho que a quantidade que vai ser trocada, exemplo:
builder.append("a");
builder.append("b");
builder.append("c");
builder.append("e");

builder.replace(1, 3, "0123");

System.out.println(builder.toString()); // imprime a0123e

Sorry :~

Criado 27 de janeiro de 2010
Ultima resposta 27 de jan. de 2010
Respostas 3
Participantes 3