Khalid:
Escribir un programa que toma como entrada una fecha en el formato mm / dd / aaaa e imprime la misma fecha en la forma dd-Month-yy
. Por ejemplo, si las entradas de usuario 5/31/2011
a continuación, los productos de los programas5-May-11
Hay dos retos para este programa:
- Es necesario leer los datos y separar las partes (mes, día, año)
- Es necesario decidir qué palabra para imprimir - esta parte es la estructura de la selección
Para el primer reto, tratar el siguiente algoritmo:
- Leer la entrada como una cadena
- Asignar la subcadena que comienza en el principio de la cadena y termina con la primera '/' a una variable que representa el mes.
- Usando la subcadena que comienza después de la primera asignación la subcadena '/' que comienza al principio (del día) y termina con el segundo '/' a una variable que representa el día
- Asignar el resto de la cadena (después de la segunda '/') a una variable que representa el año
Para el segundo desafío, vamos a usar una estructura de selección que recoge la palabra de imprimir en base al valor de la variable mes.
Aquí está mi código:
import java.util.Scanner;
public class DateConverter {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
String date;
System.out.println("Please enter a date in the form mm/dd/yyyy");
date = kb.nextLine();
String day = date.substring(3,5);
String month = date.substring(0,2);
String year = date.substring(6,date.length());
int conv = Integer.parseInt(month);
if (conv == 1){
System.out.println(day + "-January-" + year);
}
else if (conv == 2){
System.out.println(day + "-February-" + year);
}
else if (conv == 3){
System.out.println(day + "-March-" + year);
}
else if (conv == 4){
System.out.println(day + "-April-" + year);
}
else if (conv == 5){
System.out.println(day + "-May-" + year);
}
else if (conv == 6){
System.out.println(day + "-June-" + year);
}
else if (conv == 7){
System.out.println(day + "-July-" + year);
}
else if (conv == 8){
System.out.println(day + "-August-" + year);
}
else if (conv == 9){
System.out.println(day + "-September-" + year);
}
else if (conv == 10){
System.out.println(day + "-October-" + year);
}
else if (conv == 11){
System.out.println(day + "-November-" + year);
}
else if (conv == 12){
System.out.println(day + "-December-" + year);
}
else {
System.out.println("Invalid data. try again");
}
}
}
Sólo necesito saber cómo puedo asignar una subcadena que comienza en el principio de la cadena y termina en el primer carácter "/".
TorchNight MC:
int slashPos = string.indexOf("/");
String substring = string.substring(0, slashPos);
Cadena # indexOf () proporcionará el índice de la primera aparición de cadenas.