Ajuda com manipulação de String

8 respostas
paulovc

Galera, meu professor pediu um exercício para a nota… Preciso da ajuda de vocês pra dar aquele empurrão, por favor!!!

Seguinte, deve-se entrar com uma data pelo Scanner (exemplo: 02/07/1992) e sair 02 de Julho de 1992… Até aí é muito fácil, mas não pode usar For, Array e pode usar apenas um If.

Na hora, resolvi o problema com a função replace, hahahahah! Ele não aceitou, óbvio!

Na segunda tentiva, usei por tratamento de string… Em um variável MESES coloquei “01Janeiro02Fevereiro03Março…12Dezembro” daí por tratamento de string eu consegui resolver o problema de novo funcionando perfeitamente…

MAS, meu querido professor disse-me que devo tirar esses número… deve ficar assim “JaneiroFevereiroMarçoAbril…Dezembro”… Ele ensinou-nos encapsulamento, será que devo usar isso? Atribuir tudo em um objeto? Ainda não entendi muito bem o uso do encapsulamento atribuindo tudo em um Objeto :cry:

Aguardo respostas… por favor!!!

Desde já muito obrigado!!!

8 Respostas

marcelo.bellissimo
public class Teste {
	
	public Teste(){
		String data = "02/07/1992";
		String dia = data.split("/")[0];
		String mes = retornaMesByNumero(data.split("/")[1]);
		String ano = data.split("/")[2];
		System.out.println(dia + " de " + mes + " de " + ano);
	}

	public static void main(String[] args) {
		new Teste();
	}
	
	public String retornaMesByNumero(String numero){
		String mes="";
		switch (Integer.parseInt(numero)) {
		case 1:
			mes = "Janeiro";
			break;
		case 2:
			mes = "Fevereiro";
			break;
		case 3:
			mes = "Março";
			break;
		case 4:
			mes = "Abril";
			break;
		case 5:
			mes = "Maio";
			break;
		case 6:
			mes = "Junho";
			break;
		case 7:
			mes = "Julho";
			break;
		case 8:
			mes = "Agosto";
			break;
		case 9:
			mes = "Setembro";
			break;
		case 10:
			mes = "Outubro";
			break;
		case 11:
			mes = "Novembro";
			break;
		case 12:
			mes = "Dezembro";
			break;
		default:
			break;
		}
		return mes;
	}

}

Bem provável que seu professor vai reclamar com alguma coisa... :roll:

Aliás, um pouco sobre encapsulamento, pois não sei bem onde ele queria que fosse aplicado o encapsulamento, e não sei se você também entendeu o conceito: http://pt.wikipedia.org/wiki/Encapsulamento

O

Eu sei que esses exercícios são para demonstrar um princípio (e não para serem usados na prática), mas desta vez nem o princípio eu sei qual é.

Eu só sei que na prática, uma das maneiras para formatar uma data num padrão é usando o SimpleDateFormat ou o String.format. O pessoal aqui recomenda o uso da biblioteca Joda Time.

luciano2
marcelo.bellissimo:
public class Teste {
	
	public Teste(){
		String data = "02/07/1992";
		String dia = data.split("/")[0];
		String mes = retornaMesByNumero(data.split("/")[1]);
		String ano = data.split("/")[2];
		System.out.println(dia + " de " + mes + " de " + ano);
	}

	public static void main(String[] args) {
		new Teste();
	}
	
	public String retornaMesByNumero(String numero){
		String mes="";
		switch (Integer.parseInt(numero)) {
		case 1:
			mes = "Janeiro";
			break;
		case 2:
			mes = "Fevereiro";
			break;
		case 3:
			mes = "Março";
			break;
		case 4:
			mes = "Abril";
			break;
		case 5:
			mes = "Maio";
			break;
		case 6:
			mes = "Junho";
			break;
		case 7:
			mes = "Julho";
			break;
		case 8:
			mes = "Agosto";
			break;
		case 9:
			mes = "Setembro";
			break;
		case 10:
			mes = "Outubro";
			break;
		case 11:
			mes = "Novembro";
			break;
		case 12:
			mes = "Dezembro";
			break;
		default:
			break;
		}
		return mes;
	}

}

Bem provável que seu professor vai reclamar com alguma coisa... :roll:

Aliás, um pouco sobre encapsulamento, pois não sei bem onde ele queria que fosse aplicado o encapsulamento, e não sei se você também entendeu o conceito: http://pt.wikipedia.org/wiki/Encapsulamento

Este código devia estar em dos topicos sobre POG

marcelo.bellissimo
luciano@@:
marcelo.bellissimo:
public class Teste {
	
	public Teste(){
		String data = "02/07/1992";
		String dia = data.split("/")[0];
		String mes = retornaMesByNumero(data.split("/")[1]);
		String ano = data.split("/")[2];
		System.out.println(dia + " de " + mes + " de " + ano);
	}

	public static void main(String[] args) {
		new Teste();
	}
	
	public String retornaMesByNumero(String numero){
		String mes="";
		switch (Integer.parseInt(numero)) {
		case 1:
			mes = "Janeiro";
			break;
		case 2:
			mes = "Fevereiro";
			break;
		case 3:
			mes = "Março";
			break;
		case 4:
			mes = "Abril";
			break;
		case 5:
			mes = "Maio";
			break;
		case 6:
			mes = "Junho";
			break;
		case 7:
			mes = "Julho";
			break;
		case 8:
			mes = "Agosto";
			break;
		case 9:
			mes = "Setembro";
			break;
		case 10:
			mes = "Outubro";
			break;
		case 11:
			mes = "Novembro";
			break;
		case 12:
			mes = "Dezembro";
			break;
		default:
			break;
		}
		return mes;
	}

}

Bem provável que seu professor vai reclamar com alguma coisa... :roll:

Aliás, um pouco sobre encapsulamento, pois não sei bem onde ele queria que fosse aplicado o encapsulamento, e não sei se você também entendeu o conceito: http://pt.wikipedia.org/wiki/Encapsulamento

Este código devia estar em dos topicos sobre POG

Concordo, mas eu fiz isso porque tenho quase certeza (se não 100% de certeza) que o professor dele vai reclamar se usar alguma classe especial pra formatar datas, ou coisa do tipo... eu sei como é esse tipo de professor, você descobre uma maneira fácil, mas ele reclama e quer que você faça da maneira mais difícil e porca possível...

Eu lembro de um professor meu que pediu pra gerar um código que "jogava dados", ou seja, usei logo de cara o Math.random() pra gerar números aleatórios, e adivinha o que ele me falou? Te dou uma chance... :lol:

luciano2

Já enfrentei um cara assim e só teve uma alternativa, tive q ir na cordenação de curso.

marcelo.bellissimo

Ah, eu poderia ter feito isso também… mas eu pensei “que se dane” e fiz do jeito dele mesmo… pelo menos a turma que eu andava acabou aprendendo bem, com ou sem as aulas dele, isso porque éramos auto-didatas… depois, mais pro final do ano, esse professor até vinha perguntar algumas coisas pra gente, hahaha… 8)

luciano2

Só fazendo mestrado para roubar a vaga desses caras.

paulovc
marcelo.bellissimo:
public class Teste {
	
	public Teste(){
		String data = "02/07/1992";
		String dia = data.split("/")[0];
		String mes = retornaMesByNumero(data.split("/")[1]);
		String ano = data.split("/")[2];
		System.out.println(dia + " de " + mes + " de " + ano);
	}

	public static void main(String[] args) {
		new Teste();
	}
	
	public String retornaMesByNumero(String numero){
		String mes="";
		switch (Integer.parseInt(numero)) {
		case 1:
			mes = "Janeiro";
			break;
		case 2:
			mes = "Fevereiro";
			break;
		case 3:
			mes = "Março";
			break;
		case 4:
			mes = "Abril";
			break;
		case 5:
			mes = "Maio";
			break;
		case 6:
			mes = "Junho";
			break;
		case 7:
			mes = "Julho";
			break;
		case 8:
			mes = "Agosto";
			break;
		case 9:
			mes = "Setembro";
			break;
		case 10:
			mes = "Outubro";
			break;
		case 11:
			mes = "Novembro";
			break;
		case 12:
			mes = "Dezembro";
			break;
		default:
			break;
		}
		return mes;
	}

}

Bem provável que seu professor vai reclamar com alguma coisa... :roll:

Aliás, um pouco sobre encapsulamento, pois não sei bem onde ele queria que fosse aplicado o encapsulamento, e não sei se você também entendeu o conceito: http://pt.wikipedia.org/wiki/Encapsulamento

Muitooooo Obrigado, marcelo.bellissimo!

Pensei em usar o switch mas pensei que o professor não aceitaria, hehehehe

Vou falar com ele esta sexta... trago o resultado pra vocês!

Sabe, o professor explicou em sala de aula que poderíamos colocar tudo em um objeto só.. pensei que tinha algum macete como

"if(objeto==Integet.parseInt(nummes)) {
return
}"

sei lá o que imaginei, hehe

Mais uma vez muito obrigado :) Concordo com o luciano@@ também.. só fazendo mestrado pra roubar a vaga dos caras :P

Valeu!

Criado 31 de maio de 2010
Ultima resposta 1 de jun. de 2010
Respostas 8
Participantes 4