File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Beginning Java and the fly likes Problem with switches Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Problem with switches" Watch "Problem with switches" New topic

Problem with switches

David Moncada

Joined: Feb 26, 2013
Posts: 9
Hello guys i'm new to this forums and I hope someone can help me, I have this switch:

String arrivalDate;
arrivalDate = "20 Nov 2013";
String input = arrivalDate;
Date d;
switch (arrivalDate) {

case "dd MMM yyyy":
d = new SimpleDateFormat("dd MMM yyyy", Locale.US).parse(input);
case "dd-MMMM-yyyy":
d = new SimpleDateFormat("dd-MMMM-yyyy", Locale.US).parse(input);
case "ddMMMMyyyy":
d = new SimpleDateFormat("ddMMMMyyyy", Locale.US).parse(input);
case "dd-MMMM-yy":
d = new SimpleDateFormat("dd-MMMM-yy", Locale.US).parse(input);
case "dd/MMMM/yy":
d = new SimpleDateFormat("dd/MMMM/yy", Locale.US).parse(input);
d = new SimpleDateFormat("MM/dd/yyyy", Locale.US).parse(input);
String output = new SimpleDateFormat("MM/dd/yyyy").format(d);
System.out.println("this " + output);


It always go rigth to the default and well it sends me a parse error, why is this I have tryed to make it work but it doesn't thanks in advance guys
fred rosenberger
lowercase baba

Joined: Oct 02, 2003
Posts: 11710

If your case statement has "dd MMM yyyy", and your input is "20 Nov 2013", those strings are not a match. one starts with a little 'd', the other starts with a digit '2'. The same is true for all your cases - it is matching on the LITERAL string you provide, not some interpretation of what your string means.

There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
David Moncada

Joined: Feb 26, 2013
Posts: 9
But then how can I introduce a date to compare to?
Bear Bibeault
Author and ninkuma

Joined: Jan 10, 2002
Posts: 62511

The switch statement is going to do any pattern matching. Perhaps you need regular expressions to see what pattern your sting matches.

[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
David Moncada

Joined: Feb 26, 2013
Posts: 9
Ok I will try that thanks!
I agree. Here's the link:
subject: Problem with switches