从Java中的字符串中删除方括号
我想删除此方括号。我试过了,但它给出了相同的输出。从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