2017-09-14 1012 views
0

我想刪除此方括號。我試過了,但它給出了相同的輸出。從Java中的字符串中刪除方括號

String datetime = [Thu Sep 14 17:00:00 GMT+05:30 2017]; 
datetime=datetime.replaceAll("\\[", "").replaceAll("\\]",""); 

我在哪裏出錯了?

+0

您是否嘗試過的東西? – Batty

+0

@Batty你可以看到代碼在問題中。 –

+1

你的字符串分配是錯誤的。像'String datetime =「[Thu Sep 14 17:00:00 GMT + 05:30 2017]」;'你很好走。你的代碼有效。 – Batty

回答

0

您應該可以將您的代碼縮短到只需一個replaceAll調用。

datetime = datetime.replaceAll("[\\[\\]]", "") 

IdeoneIt!


正則表達式的詳細

  • [ - 開放字符類
  • \\[\\] - 字面方括號
  • ] - 關閉字符類
0

如果你已經設置你自己的時間字符串,你爲什麼不只是設置方括號? 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)); 

} 

}

+0

這絕對不是你的代碼... –

+0

這不是,那又如何?我可以自己寫它,它會非常相似,重點是相同的,我只是想給出快速和明確的答案。 –

+0

整個問題的關鍵是連接/鑑定任何外部參考,而且您似乎已經根據我的評論做了這些,這正是我想要的。我休息我的情況。不需要防守。 –

0

別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