开发者社区> 问答> 正文

使用子字符串和if else语句的日期格式更改程序

编写一个程序,以mm / dd / yyyy格式输入日期并以格式打印相同日期dd-Month-yy。例如,如果用户输入,5/31/2011则程序输出5-May-11

该程序有两个挑战:

  • 您需要读入数据并分开各个部分(月,日,年)
  • 您需要确定要打印哪个单词–这部分是选择结构 对于第一个挑战,请尝试以下算法:

  • 以字符串形式读取输入

  • 将以String开头并以第一个'/'结尾的子字符串分配给代表月份的变量。
  • 使用在第一个'/'之后开始的子字符串,将从第二天'/'开始并以第二个'/'结尾的子字符串分配给代表日期的变量
  • 将字符串的其余部分(在第二个“ /”之后)分配给代表年份的变量 对于第二个挑战,您将使用选择结构,该结构根据month变量的值来选择要打印的单词。

这是我的代码:

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");
        }
    }
}```
我只需要知道如何分配一个从字符串开头开始到第一个“ /”字符结尾的子字符串即可。

问题来源:Stack Overflow

展开
收起
montos 2020-03-27 22:23:32 757 0
1 条回答
写回答
取消 提交回答
  • int slashPos = string.indexOf("/");
    String substring = string.substring(0, slashPos);
    

    String#indexOf()将提供第一个字符串出现的索引。

    回答来源:Stack Overflow

    2020-03-27 22:23:58
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载