2011-09-23 85 views
1

因此,從我發現的東西我將不得不寫一個交換方法?唯一的問題是,我一直在查看的代碼有點凌駕於我的頭上。如何分割字符串值並重新排列字符

我從一個xml文件中獲取一個值,例如「20120411」我想將它傳遞給另一個字符串的是2012年4月11日或至少2012年4月11日。我已經找到了簡單的方法來處理除了java之外的其他所有語言。如果它足夠簡單讓某人向我展示代碼來完成此操作,或者指向正確的方向,我將不勝感激!

+0

你會發現你在java.lang和文本包所需要的一切。現在請自己做作業代碼..老虎! – RHT

+0

感謝您的參考 – IceSteve

回答

4

看看使用SimpleDateFormat對象。在這個論壇中有很多很多關於如何使用它的例子,所以一點點搜索會給你帶來財富。如果你仔細觀察,仍然陷入困境,那麼你應該考慮向我們展示你的嘗試,並告訴我們什麼不適合你,我們很可能會很輕鬆地幫助你。

格式字符串嘗試包括「yyyyMMdd」。您將使用此String構造您的SDF對象,解析xml字符串並將其轉換爲Date對象。您將使用第二個具有不同模式字符串的SDF對象,可能是「MMMM dd,yyyy」將日期格式化爲不同的字符串。再次,試試吧!

例如,

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(); 
     } 
    } 
} 
+0

感謝您檢查出來 – IceSteve

+0

爲了快速的結果,這將是一段路要走。請記住'SimpleDateFormat'不是線程安全的。 –

+0

的確如此。例如,請看[Java Tutorial中的此鏈接](http://download.oracle.com/javase/tutorial/i18n/format/simpleDateFormat.html)。裏面有一個簡單易懂的關於如何使用SimpleDateFormat類的例子。 –

1

這需要 「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, "/"); 
1

如果你想這樣做,重新安排字符,你可以做一個替代:

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