Arquito txt!

Bom Dia,

Tenho uma rotina para gravar dados em um arquivo .txt! Tenho uma String que estou gravando no arquivo,porém gostaria que ela fosse limitada em 30 caracteres e se eu tivesse 10 caracteres nessa string, os outros 20 ficassem com espaços! Alguma idéia de como fazer isso?

[]´s :slight_smile:

isso pode te ajudar

String s = // recebe a string a ser gravada ;
		
if( s.length() > 30 ){
			
	s = s.substring( 0, 30);
}
else if( s.length() == 10){
			
	s += "                    ";
}
else{
			
	// grava a string normal 
}

bravox

[quote=Bravox]isso pode te ajudar

String s = // recebe a string a ser gravada ;
		
if( s.length() > 30 ){
			
	s = s.substring( 0, 30);
}
else if( s.length() == 10){
			
	s += "                    ";
}
else{
			
	// grava a string normal 
}

bravox[/quote]

E ai Bravox gostaria de esclarecer sua resposta, não entendi pois se for maior que 30 blz pega a String de 0 a 30 (s = s.substring( 0, 30);), mas se não for maior que trinta só pode ser igual a 10(s.length() == 10), não podeia ser igual 12,13 ou 18…
Outra duvida ser for igual 10 vc concatena com 20 espaços (s += " ";), agora eu quero que o tamanho da String seja igual a 120 então o método seria igual(s += " ";).
Que gabiarra em cara, se não sabe responder , não entra pra deixar estas besteiras, onde vc aprendeu lógica na SOS, rsrsrsrs

E ainda fala isso pode te ajudar, que cara de pau.Estuda antes de entrar no forum…

[quote=Bravox]isso pode te ajudar

String s = // recebe a string a ser gravada ;
		
if( s.length() &gt 30 ){
			
	s = s.substring( 0, 30);
}
else if( s.length() == 10){
			
	s += "                    ";
}
else{
	

E ai Bravox gostaria de esclarecer sua resposta, não entendi pois se for maior que 30 blz pega a String de 0 a 30 (s = s.substring( 0, 30);), mas se não for maior que trinta só pode ser igual a 10(s.length() == 10), não podeia ser igual 12,13 ou 18.....
Outra duvida ser for igual 10 vc concatena com  20 espaços (s += "                    ";), agora eu quero que o tamanho da String seja igual a 120 então o método seria igual(s += "                                                                                                                                                                                                                                                                                     ";).
Que gambiarra em cara, se não sabe responder , não entra pra deixar estas besteiras, onde vc aprendeu lógica na SOS, rsrsrsrs

E ainda fala isso pode te ajudar, que cara de pau.Estuda antes de entrar no forum..............		
	// grava a string normal 
}

bravox[/quote]

Um exemplo de como poderia ser feito de maneira flexivel (vc pode alterar qual o caracter usado para preecher a String, qual o tamanho final que quer, etc… Adapte o método fillString() ao seu código, o main é só um exemplo de como usar! Provavelmente o método fillString() não precisará ser static no seu código…

import java.util.Scanner;

public class Teste{

	public static void main(String args[]){
		Scanner input = new Scanner(System.in);
                final int COMPRIMENTO = 30;
		String s = null;
		char fillChar = '#';		
		while(true){
			s = input.next();
			if(s.length() &lt COMPRIMENTO) s = fillString(s, fillChar, COMPRIMENTO);
			else if(s.length() &gt COMPRIMENTO) s = s.substring(0, COMPRIMENTO);
			System.out.println("String final: " + s);			
		}
	}
	
	public static String fillString(String s, char fillChar, int finalLength){
		int limit = finalLength - s.length();
		for(int i = 0; i &lt limit; i++)
			s += fillChar;
		return s;
	}
}

Joao.java
Caraca hein… vc deve ser o CARA msm hein…
o cara tentou ajudar… se vc não concorda com a resposta dele, não precisa criticar…

Vamos aplaudir o rei do JAVA —> Joao.java

:slight_smile:

[quote=cassio]Um exemplo de como poderia ser feito de maneira flexivel (vc pode alterar qual o caracter usado para preecher a String, qual o tamanho final que quer, etc… Adapte o método fillString() ao seu código, o main é só um exemplo de como usar! Provavelmente o método fillString() não precisará ser static no seu código…

[code]
import java.util.Scanner;

public class Teste{

public static void main(String args[]){
	Scanner input = new Scanner(System.in);
            final int COMPRIMENTO = 30;
	String s = null;
	char fillChar = '#';		
	while(true){
		s = input.next();
		if(s.length() &gt COMPRIMENTO) s = fillString(s, fillChar, COMPRIMENTO);
		else if(s.length() &gt COMPRIMENTO) s = s.substring(0, COMPRIMENTO);
		System.out.println("String final: " + s);			
	}
}

public static String fillString(String s, char fillChar, int finalLength){
	int limit = finalLength - s.length();
	for(int i = 0; i &lt limit; i++)
		s += fillChar;
	return s;
}

}
[/code][/quote]

public static String fillString(String s, char fillChar, int finalLength){ int limit = finalLength - s.length(); StringBuilder sb = new StringBuilder(s); for(int i = 0; i &lt limit; i++) sb.append(fillChar); return new String(sb); }

[quote=casmeiron][quote=cassio]Um exemplo de como poderia ser feito de maneira flexivel (vc pode alterar qual o caracter usado para preecher a String, qual o tamanho final que quer, etc… Adapte o método fillString() ao seu código, o main é só um exemplo de como usar! Provavelmente o método fillString() não precisará ser static no seu código…

[code]
import java.util.Scanner;

public class Teste{

public static void main(String args[]){
	Scanner input = new Scanner(System.in);
            final int COMPRIMENTO = 30;
	String s = null;
	char fillChar = '#';		
	while(true){
		s = input.next();
		if(s.length() &gt COMPRIMENTO) s = fillString(s, fillChar, COMPRIMENTO);
		else if(s.length() &gt COMPRIMENTO) s = s.substring(0, COMPRIMENTO);
		System.out.println("String final: " + s);			
	}
}

public static String fillString(String s, char fillChar, int finalLength){
	int limit = finalLength - s.length();
	for(int i = 0; i &lt limit; i++)
		s += fillChar;
	return s;
}

}
[/code][/quote]

public static String fillString(String s, char fillChar, int finalLength){ int limit = finalLength - s.length(); StringBuilder sb = new StringBuilder(s); for(int i = 0; i &lt limit; i++) sb.append(fillChar); return new String(sb); }[/quote]

Olá,

Apenas por curiosidade, qual a diferença real que vc vê na alteração feita?!
Obrigado!

[quote=cassio][quote=casmeiron][quote=cassio]Um exemplo de como poderia ser feito de maneira flexivel (vc pode alterar qual o caracter usado para preecher a String, qual o tamanho final que quer, etc… Adapte o método fillString() ao seu código, o main é só um exemplo de como usar! Provavelmente o método fillString() não precisará ser static no seu código…

[code]
import java.util.Scanner;

public class Teste{

public static void main(String args[]){
	Scanner input = new Scanner(System.in);
            final int COMPRIMENTO = 30;
	String s = null;
	char fillChar = '#';		
	while(true){
		s = input.next();
		if(s.length() &gt COMPRIMENTO) s = fillString(s, fillChar, COMPRIMENTO);
		else if(s.length() &gt COMPRIMENTO) s = s.substring(0, COMPRIMENTO);
		System.out.println("String final: " + s);			
	}
}

public static String fillString(String s, char fillChar, int finalLength){
	int limit = finalLength - s.length();
	for(int i = 0; i &lt limit; i++)
		s += fillChar;
	return s;
}

}
[/code][/quote]

public static String fillString(String s, char fillChar, int finalLength){ int limit = finalLength - s.length(); StringBuilder sb = new StringBuilder(s); for(int i = 0; i &lt limit; i++) sb.append(fillChar); return new String(sb); }[/quote]

Olá,

Apenas por curiosidade, qual a diferença real que vc vê na alteração feita?!
Obrigado![/quote]
www.javapractices.com/

Se você não conhece as boas práticas, vale a pena dar uma lida :wink:

o que mais me deixa supresso é que se o cara é tão bom assim , pq ele tá postando duvida , em vez de resolver sozinho

bravox

E ai Bravox gostaria de esclarecer sua resposta, não entendi pois se for maior que 30 blz pega a String de 0 a 30 (s = s.substring( 0, 30), mas se não for maior que trinta só pode ser igual a 10(s.length() == 10), não podeia ser igual 12,13 ou 18..... Outra duvida ser for igual 10 vc concatena com 20 espaços (s += " ", agora eu quero que o tamanho da String seja igual a 120 então o método seria igual(s += " ". Que gabiarra em cara, se não sabe responder , não entra pra deixar estas besteiras, onde vc aprendeu lógica na SOS, rsrsrsrs

eu aprendi logica com a sua mãe !!! rsss

[quote=Bravox] E ai Bravox gostaria de esclarecer sua resposta, não entendi pois se for maior que 30 blz pega a String de 0 a 30 (s = s.substring( 0, 30), mas se não for maior que trinta só pode ser igual a 10(s.length() == 10), não podeia ser igual 12,13 ou 18..... Outra duvida ser for igual 10 vc concatena com 20 espaços (s += " ", agora eu quero que o tamanho da String seja igual a 120 então o método seria igual(s += " ". Que gabiarra em cara, se não sabe responder , não entra pra deixar estas besteiras, onde vc aprendeu lógica na SOS, rsrsrsrs

eu aprendi logica com a sua mãe !!! rsss [/quote]

Então bravox, cara agora sei por que bravox, colocar familia no meio é feio, enfim , só falei pra te ajudar cara, pois nossa area ta meio saturada por que tem um pessoal que faz um cursinho ai e acha que manja de programação.

Mas uma dica cara as vezes vc não leva jeito pra programação, seria um bom profissional em mecanica , eletronica, jornalismo ,sei lá.

Só falei pra te alerta, pois pelo seu código vc deve ser uma cra novo(uns 18 anos) e talvez ainda de tempo de escolher outra area, esperar até os trinta pra resolver qual caminho seguir é complicado.

Valeu cara , e desculpa só queria ajudar.

Crianças, parem de brigar. Vamos lá. Peçam desculpas e não se tratem mais assim neste fórum.

Cara se eu te ofendi me desculpe !! mas o que vc fez não se faz em lugar nenhum , pq ninguém é melhor que ninguém eu somente tentei dar uma força, eu entedi a sua duvida desta forma !! mas como parece vc é tão bom que sai jugando os outros por ai como eles não fosse nada !! e se vc quiser mesmo ajudar uma pessoa pensa direito no que vai dizer pq as vezes pequenas palavras ofende as pessoas !! já ajudei e fui ajudado varias vezes no guj e jamais eu ofendi alguém e principalmente falei para pessoa que ela não tinha vocação para trabalhar com programação tirando a conclusão de meia duzia de linha de código que ela vez !!

da uma olhada no que vc falou aqui !!

reflita e seja humildade o mundo da muitas voltas ,e não sabemos o que vai acontecer no dia de amanhã

bravox

Os movimentos da Terra são os movimentos simultâneos realizados pela Terra no espaço. Existem ao todo quatro movimentos principais:

Rotação - é o movimento que a Terra executa ao redor de seu próprio eixo. Leva 23 horas, 56 minutos, 4 segundos e 9 centésimos até que se complete. É responsável pelos fenômenos do dia e da noite.

Translação - é o movimento que a Terra executa ao redor do Sol. Leva um tempo total aproximado de 365 dias e 6 horas até que se complete um ano, e é o responsável pelos fenômenos das estações do ano.

Precessão - é o movimento de deslocamento do eixo da Terra, executando uma trajetória semelhante à de um pião. É o responsável pelas eras astronômicas, com duração de cerca de 2240 anos em cada signo do Zodíaco. Demora aproximadamente 25.868 anos até completar uma precessão e o eixo da Terra se deslocar por todos os doze signos.

Revolução - é o movimento executado pela Terra ao redor do centro da Via Láctea junto com o Sol, descrevendo uma trajetória helicoidal. Não se trata de um movimento próprio da Terra, uma vez que a Terra está sendo arrastada pelo Sol.

Fonte: Wikipedia

só podia ser gaucho mesmo !!!

só podia ser gaucho mesmo !!![/quote]

Você quer dizer oque com isso? Não entendi…

alguém aqui pediu para vc explicar os movimentos da terra ?

Olha bravox alguém pediu pra você replicar alguma coisa? Se o post ainda continua ali é por que ou o moderador leu e não achou nada de errado ou por que ainda não leu. Ele que decide. Sobre o conteúdo do meu post muita gente já fugiu do assunto e até que foi bem interpretada. Esqueceu que você comentou sobre o munda dá voltas, então, fiz uma sátira só isso.

Caso sinta-se lesado com o post demonstre primeiro respeito seu mal educado. Você acha o que, que pode chegar aqui e já sair xingando um membro do forum. Primeiro faça um exame de consciência e reflita sobre a besteira que você escreveu.

Eu não sou gaúcho e não tenho nada contra eles o mesmo não posso dizer de você. Eu sou catarinense como você deve ter lido la abaixo do avatar. Quem é catarinense é por que nasceu no estado de Santa Catarina e a região Sul compreende 3 estados da federação, Paraná, Santa Catarina e Rio Grande do Sul. Gaúcho é quem nasce no Rio Grande do Sul.

Que vergonha…

P.S.: Moderador sinta-se a vontade pra excluir meu post caso haja a necessidade para tal.

lol
:shock: