Atribuir uma Array de String para uma String comum

7 respostas
D

Bom dia!!!
Dei uma procurada no fórum e não encontrei tal dúvida, que acredito ser bem básica, mas vamos aí.

Tenho uma String chamada centro com o valor “[DEFM]”, por exemplo.
Quero apenas tirar seus colchetes. Então pensei em fazer o seguinte método:

public String TiraColchete(int centroSize){
		 String PosicaoCc[] = new String[centroSize]; 
			for(int j = 0; j < centroSize; j ++){
				char PosicaoCc2 = centro.charAt(j + 1);
				PosicaoCc[j] = Character.toString(PosicaoCc2);							
				if(j + 1 == centroSize){
					PosicaoCc[j] = " ";
				}
			}
		 return centro;        // queria passar o PosicaoCc[], concatenando cada valor na variavel centro.
	 }

Fiz um lenght no centro, daí q veio a ‘int centroSize’.
Porém, travei na parte de passar o Array “PosicaoCc[]” para uma String comum.
Acredito que possa até haver algum jeito mais fácil do que isso, é q para lógica, eu realmente sou mto enrolado. Se puderem me ajudar, agradeço bastante.
Muito obrigado a todos que entrarem aqui.
Abraço.

7 Respostas

marcelo.bellissimo

Use o replace() … pra ficar mais “bonito” você poderia utilizar expressões regulares, mas por enquanto faça algo do tipo:

variavelString = variavelString.replace("[", "").replace("]", "");
Rafael_ap

Ou, além do replace(que parece melhor), o substring:

String xc = "[azul]";
		
String fin = xc.substring(1, xc.length() - 1);
marcelo.bellissimo

Como deu pra ver, existem várias maneiras… depende da sua necessidade… o meu exemplo é bom pra retirar os colchetes de qualquer lugar da String, mas o custo dela é ligeiramente maior, creio eu…

O método do Rafael acima é bom quando você tem certeza que os colchetes estão no primeiro e ultimo caracteres da String…

Mas o ideal mesmo, ainda é usar o replace com regex, dá uma estudada como funciona, e você vai ver que dá pra fazer absurdos com ele… :thumbup:

pvrsouza
Porém, travei na parte de passar o Array "PosicaoCc[]" para uma String comum.

Eu sinceramente não entendi muito bem o que você quer não.

// queria passar o PosicaoCc[], concatenando cada valor na variavel centro.

Também não entendi isso.

Se o problema for somente tirar os colchetes:

public class TiraColchetes {

    public static void main(String[] args) {
        String teste = "[TEXTO]";
        teste = teste.replace("[", "").replace("]", "");
        System.out.println(teste);
    }
}
M

Acho que o replace não seria a saída mais recomendada, já que poderiam haver colchetes no conteúdo.
O substring sugerido pelo Rafael ap. seria ótimo. :smiley:

L

Daniel-Silva:
Bom dia!!!
Dei uma procurada no fórum e não encontrei tal dúvida, que acredito ser bem básica, mas vamos aí.

Tenho uma String chamada centro com o valor “[DEFM]”, por exemplo.
Quero apenas tirar seus colchetes. Então pensei em fazer o seguinte método:

public String TiraColchete(int centroSize){
		 String PosicaoCc[] = new String[centroSize]; 
			for(int j = 0; j < centroSize; j ++){
				char PosicaoCc2 = centro.charAt(j + 1);
				PosicaoCc[j] = Character.toString(PosicaoCc2);							
				if(j + 1 == centroSize){
					PosicaoCc[j] = " ";
				}
			}
		 return centro;        // queria passar o PosicaoCc[], concatenando cada valor na variavel centro.
	 }

Fiz um lenght no centro, daí q veio a ‘int centroSize’.
Porém, travei na parte de passar o Array “PosicaoCc[]” para uma String comum.
Acredito que possa até haver algum jeito mais fácil do que isso, é q para lógica, eu realmente sou mto enrolado. Se puderem me ajudar, agradeço bastante.
Muito obrigado a todos que entrarem aqui.
Abraço.

Ola daniel se o problema for retirar o primeiro e o ultimo colchetes a solução pode ser o subsstring como já dito ou usar expressão regular, desta forma:

public String TiraColchete(int centroSize){
		 String PosicaoCc[] = new String[centroSize]; 
			for(int j = 0; j < centroSize; j ++){
				char PosicaoCc2 = centro.charAt(j + 1);
				PosicaoCc[j] = Character.toString(PosicaoCc2);							
				if(j + 1 == centroSize){
					PosicaoCc[j] = " ";
				}
			}
		 return centro.replaceAll("^\[|\]$", "");        // queria passar o PosicaoCc[], concatenando cada valor na variavel centro.
	 }

Desta forma vc garante que apenas o colchetes que estiver na primeira posição ou na ultima será removido.

D

Ae galera, muito obrigado mesmo.
Usei a forma de substring que o rafael mostro, pois assim nem precisava fazer esse método q eu fiz. Em uma linha deu pra resolver o problema, mesmo no método principal, sem maiores problemas. Valeu mesmo a todos.
Abração!!

Criado 11 de fevereiro de 2010
Ultima resposta 12 de fev. de 2010
Respostas 7
Participantes 6