Dúvida para separar INT[RESOLVIDO]

9 respostas
dsystem

Boa noite pessoal,

em primeiro lugar não sei se é possível fazer o que estou querendo, mas como aqui sempre encontro ajuda, resolvi postar minha dúvida…

É o seguinte, eu tenho um código que eu digito o dia,mes, ano e ele me retorna o 1º e o ultimo dia do mês digitado. Mais ou menos dessa forma

Scanner teclado = new Scanner(System.in);		
		System.out.println("Digite o ano");
		int ano = teclado.nextInt();		
		System.out.println("Digite o mes");
		int mes = teclado.nextInt();				
		Calendar cal = new GregorianCalendar();			
		cal.set(ano,mes,1);
		System.out.println(cal.getActualMinimum(Calendar.DAY_OF_MONTH));
		System.out.println(cal.getActualMaximum(Calendar.DAY_OF_MONTH));

Porém, para o sistema que estou desenvolvendo (web) o usuário irá digitar, por exemplo 05/2010 ( que seria o mês e ano).
Eu queria saber se tem algum código que faça essa quebra, por exemplo. Eu digito 05/2010 e ele separa

05 = mes
2010 = ano

para que, com isso, eu consiga setar os valores.

Bom, não sei se deu para entender o que preciso. Mas alguém poderia me ajudar???

=]

Desde já agradeço

Bjs!!!

9 Respostas

g4j

Use o método split da classe String

public static void main(String[] args) {
		String s = "05/2010";
		String[] array = s.split("/");
		System.out.println(array[0]);
		System.out.println(array[1]);
	}
rogelgarcia

Use a API de formatacao java

Referencia: http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/api/java/text/DateFormat.html

dsystem

Então pessoal,

tentei seguir os exemplos e fiz algo mais ou menos assim:

String s = "052010";  
		DateFormat formatter = new SimpleDateFormat("MM/yyyy");  
		Date date = (Date)formatter.parse(s); 
		System.out.println(s);
        String[] array = s.split("/");  
        System.out.println(array[0]);  
        System.out.println(array[1]);

mas dá esse erro

Exception in thread "main" java.text.ParseException: Unparseable date: "052010"
	at java.text.DateFormat.parse(Unknown Source)
	at br.com.caelum.teste.TesteHora.main(TesteHora.java:37)

Na verdade, creio que eu tenha que colocar

String s = "05/2010";

Mas eu queria que ele AUTOMATICAMENTE convertesse para o formato “MM/yyyy” .

Ah, outra coisa. Essa parte array[0] e array[1] tem como eu colocar em variáveis tipo:

mes = array[0] ano = array[1]

Desde já agradeço!!!

rogelgarcia

É pq vc misturou as solucoes… heheh

O SimpleDateFormat… resolve tudo sozinho… nao precisa do split…

String s = "05/2010"; DateFormat formatter = new SimpleDateFormat("MM/yyyy"); Date date = (Date)formatter.parse(s);

Isso é para transformar de string para datas…

Se vc quiser separar as partes da string… vc usa o split… aí vc vai ter duas strings…

dsystem

Hehehehe…
:oops:

Agora entendi…

Fiz assim

String s = "05/2010";      
        DateFormat formatter = new SimpleDateFormat("MM/yyyy");      
        Date date = (Date)formatter.parse(s);  
        String[] array = s.split("/");  
        System.out.println(array[0]);  
        System.out.println(array[1]);

Não apresentou erros… Então creio que está correto.

Valewwwww pela ajuda…

Agora uma dúvida. É possível eu colocar esses dois arrays dentro de duas variáveis, tipo mes = array[0] e ano = array[1]?
Porque eu nunca vi algo assim. Ai me bateu a dúvida.

Mais uma vez obrgada…

GUJeiros sempre me salvando :wink:

rogelgarcia

Porque nao?

dsystem

Rogelgarcia e G4j,

em primeiro lugar, obrigada por toda ajuda.

Consegui fazer tudinho :slight_smile:

Bom, vou postar o código.

Scanner teclado = new Scanner(System.in);
		System.out.println("Digite a data ");
		String s = "";
		s = teclado.nextLine();
			     
        DateFormat formatter = new SimpleDateFormat("MM/yyyy");      
        Date date = (Date)formatter.parse(s);  

        String separador[];
        separador = s.split("/");
        String mesS = separador[0];
        String anoS = separador[1];

        //Converte para Int para poder apresentar no Calendar  
        int mesF = Integer.parseInt(mesS);
      
        
        int mes = mesF - 1;
        int ano = Integer.parseInt(anoS);
        Calendar cal = new GregorianCalendar();			
		cal.set(ano,mes,1);
		System.out.println(cal.getActualMinimum(Calendar.DAY_OF_MONTH));
		System.out.println(cal.getActualMaximum(Calendar.DAY_OF_MONTH));

Obrigadaaaaaaaaaaaaa Pessoallll!!

rogelgarcia

Muito bom! Parabéns!

dsystem

Muito obrigada,

Confesso que pensei que seria mais complicado…
Mas conforme fui pensando, fui “encaixando” as peças…rsrs

Obrigadaaaaaaaaaaaaaaaaaaaaaaaaaaa

Criado 16 de julho de 2010
Ultima resposta 17 de jul. de 2010
Respostas 9
Participantes 3