Pular linha a cada 4 palavras

11 respostas
rockstorm

Bom dia a todos.

Não estou conseguindo encontrar uma forma ou lógica para implantar isso.

Recebo via SSH uma String que retorna dados de um usuário contendo cabeçalho e informativos sendo:

Nome numero rg status Mario 16 0000000 ativo Maria [telefone removido] ativo Joao [telefone removido] inativo

Preciso separar o cabeçalho das informações para que o mesmo fique assim:

[b]Nome numero rg status

Mario 16 0000000 ativo
Maria [telefone removido] ativo
Joao [telefone removido] inativo[/b]

Tentei recuperar as palavras em um array e depois utilizar um contador para que a cada 4 palavras ele pule uma linha mas não estou conseguindo fazer ou pensar na logica para tal. Estou utilizando split para separar.

alguma sugestão?

11 Respostas

B

a cada quatro espaços encontrados vc faz o substring.

rockstorm

Isso eu ja até fiz, mas o problema pe montar a estrutura para mostrar o cabeçalho com os dados abaixo.

Seria como pular linhas a cada 4 substrigs…

Felagund

vo tentar analisar issos

String envio = .... //String recebida
String[] partes = envio.split(" ");
int limit = 4;
int count = 0;
StringBuilder sb = new StringBuilder();
for(String s : partes){
    sb.append(s).append(" ");
   count++;
   if(count == limit){
      count = 0;
      sb.append("\n");
   }
}
System.out.println(sb.toString());

Isso deve resolver

B

frosemberg:
Isso eu ja até fiz, mas o problema pe montar a estrutura para mostrar o cabeçalho com os dados abaixo.

Seria como pular linhas a cada 4 substrigs…


bom ja deram uma solução, mas a cada quatro espaços, em vez de substring vc poderia dar um replace de ’ ’ para ‘\n’ :wink:

Hellmanss

Apesar de ja ter a resposta ,agora que fiz vou postar :P

String parm = "Mario 16 0000000 ativo Maria [telefone removido] ativo Joao [telefone removido] inativo";
String[] tokens = parm.split(" ");
		 
String text = "";
for(int i=0; i < tokens.length;i++){
	if(i %4==0){
		text+="\n";
	}
text+=tokens[i]+" ";
System.out.println(tokens[i]);
}
System.out.println(text);

Mario 16 0000000 ativo
Maria [telefone removido] ativo
Joao [telefone removido] inativo

rockstorm

Isso mesmo.

As duas soluções funcionaram. Hellmanss e Felagund …e agradeço tb o bobmoe…

agradeço…

B

obrigado,

mas tb da pra fazer sem o split():

StringBuilder phrase = new StringBuilder("Mario 16 0000000 ativo Maria [telefone removido] ativo Joao [telefone removido] inativo"); int skipCounter = 1; for(int position=0; position < phrase.length();position++){ if (phrase.charAt(position) == ' '){ if (skipCounter == 4) { phrase.replace(position, position+1, "\n"); skipCounter = 1; } else{ skipCounter++; } } }

barenko

Gostei, minha sugestão é:

public static void main(final String[] args) throws Exception {
    System.out.println(break4Spaces("Mario 16 0000000 ativo Maria [telefone removido] ativo Joao [telefone removido] inativo"));
  }

  public static String break4Spaces(String input) {
    return input.replaceAll("(([^ ]+ ){4})", "$1\n");
  }
B
barenko:
Gostei, minha sugestão é:
public static void main(final String[] args) throws Exception {
    System.out.println(break4Spaces("Mario 16 0000000 ativo Maria [telefone removido] ativo Joao [telefone removido] inativo"));
  }

  public static String break4Spaces(String input) {
    return input.replaceAll("(([^ ]+ ){4})", "$1\n");
  }

muiiiitto foda! :)

Felagund
barenko:
Gostei, minha sugestão é:
public static void main(final String[] args) throws Exception {
    System.out.println(break4Spaces("Mario 16 0000000 ativo Maria [telefone removido] ativo Joao [telefone removido] inativo"));
  }

  public static String break4Spaces(String input) {
    return input.replaceAll("(([^ ]+ ){4})", "$1\n");
  }

cara esse vo anota, mato a pau.

rockstorm

Noossa…show hein barenko !!!

Criado 10 de fevereiro de 2010
Ultima resposta 10 de fev. de 2010
Respostas 11
Participantes 5