Transformar String[] para String

13 respostas
ynaue

Oie pessoal!!!

Alguem sabe com transformar String[] para String???
Tentei usando toString mas recebo como resposta um endereço.

Thanks

13 Respostas

Guilherme_Moreira

Você quer juntar todas as String’s que estam dentro de uma String[] e colocar em uma String?

se for isso:

String listaEmUmaString = "";
for(String s : String[] listaDeStrings){
  listaEmUmaString = listaEmUmaString + s;
}
matheuscechito

cada posição do Array é uma String a parte…

vc pode percorrer o array e ir salvando em variáveis separadas, ou então num List

t+

ynaue

Isso!
E quero colocar um separador entre elas

Tentei fazer o que me disse mas na linha do for diz que esta faltando um .class . Mas onde???

Para concatenar o separador é só fazer isso, né?

listaEmUmaString = listaEmUmaString + "/"+s;
ramilani12

Que estranho faltando .class ! , como esta seu for ?

Mantu

gui0rafa:

String listaEmUmaString = ""; for(String s : String[] listaDeStrings){ listaEmUmaString = listaEmUmaString + s; }


Acho que isso não é legal, pois a cada passo da iteração, no caso acima, é instanciado um novo objeto String, o que pode dar problemas de performance.
O ideal seria utilizar um StringBuilder (ou StringBuffer se houver concorrência)

StringBuilder sb = new StringBuilder();
for(String s : String[] listaDeStrings){
  sb.append(s);
}
kaabah

Não é muito aconselhável usar concatenação de strings dentro de loops dessa maneira. Pra estes casos o uso de StringBuffer é mais indicado.

Só não sei se é viável pra você :wink:

Bons códigos! :idea:

kaabah

Respondemos na mesma hora!! hehehehe!

cassio

Mantu:
gui0rafa:

String listaEmUmaString = ""; for(String s : String[] listaDeStrings){ listaEmUmaString = listaEmUmaString + s; }


Acho que isso não é legal, pois a cada passo da iteração, no caso acima, é instanciado um novo objeto String, o que pode dar problemas de performance.
O ideal seria utilizar um StringBuilder (ou StringBuffer se houver concorrência)

StringBuilder sb = new StringBuilder(); for(String s : String[] listaDeStrings){ sb.append(s); }

Mantu, ali no for não é for each?

rodrigo_gomes

não
http://java.sun.com/j2se/1.5.0/docs/guide/language/foreach.html

[]´s
Rodrigo

ynaue

Valeu pessoal!!!

Mas e agora o contrario???

Eu tenho uma String enorme com os dados [b]separados com , /b e quero transforma-la em uma lista

cassio

não
http://java.sun.com/j2se/1.5.0/docs/guide/language/foreach.html

[]´s
Rodrigo

Obrigado :slight_smile:

J

String a = “1,2,3,4,5,6,7”;

String b[] = a.split(",");

Mantu

Só tomem cuidado com o split, por que o String que ele recebe por parâmetro não é encarado como um mero String, e sim como uma Expressão Regular(vulgo regex), cuja sintaxe você pode conferir aqui
Só pra ter uma idéia do que um split mal utilizado (e também um bem utilizado) pode fazer, rode esta classe aí na sua máquina

class TesteRegex{
	public static void main(String[] args) {
		String
			testes[] = {
				"1,2,3,4,5",
				"1:2:3:4:5",
				"1;2;3;4;5",
				"1.2.3.4.5",
				"1$2$3$4$5",
				"1*2*3*4*5",
				"1a2_3y4n5",
				"1!2j3&4%5",
				"1hejci2di3e4hjkjsnhidu5"
			},
			separadoresBons[] = {
				",",
				":",
				";",
				"\.",
				"\$",
				"\*",
				"[\w&&[^\d]]",
				"\D",
				"\w+"
			},
			separadoresRuins[] = {
				",",
				":",
				";",
				".",
				"$",
				"*",
				"MEU DEUS!!!",
				"E AGORA!?",
				"ISSO NÃO TÁ LEGAL..."
			}
		;
		
		System.out.println("Todos dão certo:\n=============");
		for (int i = 0; i < testes.length; i++) {
			System.out.println(
				"Quebrando \"" + testes[i] + "\" com \"" + separadoresBons[i] + "\":"
			);
			imprimeArrayString(
				separaString(testes[i], separadoresBons[i])
			);
		}
		System.out.println("\n");
		
		System.out.println("Nem todos dão certo...\n==============");
		for (int i = 0; i < testes.length; i++) {
			System.out.println(
				"Quebrando \"" + testes[i] + "\" com \"" + separadoresRuins[i] + "\":"
			);
			try {
				imprimeArrayString(
					separaString(testes[i], separadoresRuins[i])
				);
			} catch (Exception e) {
				System.out.println("\n******!!! PAU !!!******");
				e.printStackTrace(System.out);
				System.out.println("\n");
			}
		}
	}
	public static void imprimeArrayString(String[] array) {
		for(String str: array)
			System.out.println(str);
	}
	public static String[] separaString(String str, String separador) {
		return str.split(separador);
	}
	
}

Dê uma lida no último link que eu passei pra entender a classe acima.
Divirtam-se!!!

Criado 10 de novembro de 2006
Ultima resposta 10 de nov. de 2006
Respostas 13
Participantes 9