繁体   English   中英

如何分解字符串值并重新排列字符

[英]How to break apart a string value and re-arrange characters

那么从我发现的结果来看,我将不得不编写一个swap方法? 唯一的问题是我一直在查看的代码对我来说有点麻烦。

我从xml文件获取值,例如“ 20120411”,我希望将其传递给另一个字符串的时间是2012年4月11日,或者至少是2012年4月11日。 除了Java以外,我已经找到了使用其他几乎所有语言完成此操作的简单方法。 如果它简单到足以让别人向我展示实现此目的的代码,或者为我指明正确的方向,我将不胜感激!

查看使用SimpleDateFormat对象。 在此论坛中有许多如何使用此功能的示例,因此只需稍作搜索即可为您带来财富。 如果您不顾一切,仍然应该考虑向我们展示您的尝试,并告诉我们哪些对您不起作用,那么我们很可能可以轻松地为您提供帮助。

尝试使用的格式字符串包括“ yyyyMMdd”。 您将使用此String构造SDF对象,解析xml String并将其转换为Date对象。 您将使用另一个具有不同模式String的SDF对象,也许使用“ MMMM dd,yyyy”将Date格式化为另一个String。 再次尝试一下!

例如,

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SdfTest {
   public static void main(String[] args) {
      SimpleDateFormat sdfInput = new SimpleDateFormat("yyyyMMdd");
      SimpleDateFormat sdfOutput = new SimpleDateFormat("MMMM dd, yyyy");

      try {
         Date date = sdfInput.parse("20120411");
         String output = sdfOutput.format(date);
         System.out.println(output);

      } catch (ParseException e) {
         e.printStackTrace();
      }
   }
}

这将为“ 20080105”并返回“ 01/05/2008”。

StringBuffer b = new StringBuffer(dateStr);
b.append(b.substring(0, 4)).delete(0, 4); // put year at end
b.insert(2, "/");
b.insert(5, "/");

如果您只想重新排列字符,则可以执行替换:

 String dateString = "20120411".replaceAll("\\d{2}(\\d{2})(\\d{2})(\\d{2})", "$2/$3/$1");  // outputs: 04/11/12

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM