【问题标题】:How correctly convert this String using substring() Java method?如何使用 substring() Java 方法正确转换此字符串?
【发布时间】:2014-12-05 11:16:18
【问题描述】:

我在使用 substring() Java 函数时遇到以下问题。

我必须做以下操作:

我有一个表示日期的字符串,格式如下:2014-12-27 (YEARS-MONTH-DAY)。

我想把它转换成这样的字符串:20141227(日期组件之间没有空格)。

所以我实现了以下使用 substring() 方法来完成此任务的方法:

private String convertDate(String dataPar) {
    String convertedDate = dataPar.substring(0,3) + dataPar.substring(5,6) + dataPar.substring(8,9);
    return  convertedDate;
}

但它不能很好地工作并返回给我错误的转换。为什么?我错过了什么?

【问题讨论】:

标签: java string substring


【解决方案1】:

使用替换方法将所有出现的'-' 替换为''

private String convertDate(String dataPar) {
    return dataPar.replace('-', '');
}

【讨论】:

    【解决方案2】:

    一个简单的方法是替换所有出现的-。如果分隔符可以不同,那么使用SimpleDateFormat 会更好。

    private String convertDate(String dataPar) {
        return datapar.replaceAll("-", "");
    }
    

    【讨论】:

      【解决方案3】:

      尝试replaceAll(这将替换 -"" 意味着它将删除-):

      private String convertDate(String dataPar) {
          if(dataPar.length() > 0){
             return dataPar.replaceAll("-","");
          }
          return "NOVAL";
      }
      

      【讨论】:

        【解决方案4】:

        如果输入只是一个日期,您可以使用SimpleDateFormat 并使用yyMMdd http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html 之类的格式

        【讨论】:

          【解决方案5】:

          我希望您只更改 substring() 方法的结尾索引,如下所示

          String convertedDate = dataPar.substring(0,4) + dataPar.substring(5,7) + dataPar.substring(8,10);
          

          我测试过,它可以按您的要求正常工作:)

          【讨论】:

            【解决方案6】:
            private String convertDate(String dataPar) {
                final String year = dataPar.substring(0, 4);
                final String month = dataPar.substring(5, 7);
                final String day = dataPar.substring(8, 10);
            
                return year + month + day;
            }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2015-02-26
              • 2021-10-10
              • 1970-01-01
              • 2017-06-10
              • 2012-06-07
              • 1970-01-01
              • 2021-07-14
              相关资源
              最近更新 更多