我想刪除此方括號。我試過了,但它給出了相同的輸出。從Java中的字符串中刪除方括號
String datetime = [Thu Sep 14 17:00:00 GMT+05:30 2017];
datetime=datetime.replaceAll("\\[", "").replaceAll("\\]","");
我在哪裏出錯了?
我想刪除此方括號。我試過了,但它給出了相同的輸出。從Java中的字符串中刪除方括號
String datetime = [Thu Sep 14 17:00:00 GMT+05:30 2017];
datetime=datetime.replaceAll("\\[", "").replaceAll("\\]","");
我在哪裏出錯了?
您應該可以將您的代碼縮短到只需一個replaceAll
調用。
datetime = datetime.replaceAll("[\\[\\]]", "")
正則表達式的詳細
[
- 開放字符類\\[\\]
- 字面方括號]
- 關閉字符類如果你已經設置你自己的時間字符串,你爲什麼不只是設置方括號? String datetime = "Thu Sep 14 17:00:00 GMT+05:30 2017";
而你應該有一個編譯器錯誤,因爲你的字符串日期時間無效,因爲它沒有雙引號。
另一方面,如果您從Java類Date
接收到datetime字符串的數據,則可以使用SimpleDateFormat
更改您收到的數據的格式。
如果你不知道如何使用SimpleDateFormat的,檢查出來here
下面是它的一些簡單的例子,你可以查看完整的教程here:
public class GetCurrentDateTime {
private static final DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
private static final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
public static void main(String[] args) {
Date date = new Date();
System.out.println(sdf.format(date));
Calendar cal = Calendar.getInstance();
System.out.println(sdf.format(cal.getTime()));
LocalDateTime now = LocalDateTime.now();
System.out.println(dtf.format(now));
LocalDate localDate = LocalDate.now();
System.out.println(DateTimeFormatter.ofPattern("yyy/MM/dd").format(localDate));
}
}
這絕對不是你的代碼... –
這不是,那又如何?我可以自己寫它,它會非常相似,重點是相同的,我只是想給出快速和明確的答案。 –
整個問題的關鍵是連接/鑑定任何外部參考,而且您似乎已經根據我的評論做了這些,這正是我想要的。我休息我的情況。不需要防守。 –
別t用空格替換括號,用正則表達式將括號內的內容匹配起來,然後用內部部分替換整個字符串。
像這樣
String datetime = "[Thu Sep 14 17:00:00 GMT+05:30 2017]";
datetime=datetime.replaceAll("\\[(.*)\\]", "$1");
System.out.println(datetime); // output is: Thu Sep 14 17:00:00 GMT+05:30 2017
您是否嘗試過的東西? – Batty
@Batty你可以看到代碼在問題中。 –
你的字符串分配是錯誤的。像'String datetime =「[Thu Sep 14 17:00:00 GMT + 05:30 2017]」;'你很好走。你的代碼有效。 – Batty