我正在尝试使用split函数删除字符串中的“:and PM”。
"07:45:19PM"
我想将07:45:19 PM设置为07 45 19
String s = "07:45:19PM"
String heys[] = new String[10];
heys = s.split(":PM");
答案 0 :(得分:2)
灵活的高级解决方案使用现代的Java日期和时间API java.time。
出于许多目的,您不希望将时间从一种字符串格式转换为另一种字符串格式。在您的程序中,最好将一天中的某个时间作为LocalTime
对象。就像您将数字保留在int
或double
变量中一样,而不是字符串中。收到字符串后,首先将其解析为LocalTime
。仅在需要提供字符串时,将LocalTime
格式化为所需的字符串。
解析输入
DateTimeFormatter givenFormatter = DateTimeFormatter.ofPattern("hh:mm:ssa", Locale.ENGLISH);
String s = "07:45:19PM";
LocalTime time = LocalTime.parse(s, givenFormatter);
格式化和打印输出
DateTimeFormatter wantedFormatter = DateTimeFormatter.ofPattern("hh mm ss");
String wantedString = time.format(wantedFormatter);
System.out.println(wantedString);
输出为:
07 45 19
教程链接
Oracle tutorial: Date Time解释了如何使用java.time。
答案 1 :(得分:0)
split
接受regular expression,因此您需要使用:|PM
来表示“ :
或PM
”:
String[] heys = s.split(":|PM");
您不需要指定keys
的长度,因为split
可以自行确定。
或者,如果您实际上想将小时,分钟和秒提取为整数,则可以使用LocalTime.parse
:
LocalTime time = LocalTime.parse(s,
DateTimeFormatter.ofPattern("hh:mm:ssa").withLocale(Locale.US));
int hour = time.getHour();
int minute = time.getMinute();
int second = time.getSecond();
答案 2 :(得分:0)
只需使用以下代码:
String s = "07:45:19PM";
String[] heys = s.split(":");
for(String hey: heys) {
System.out.print(hey.replace("PM", "") + " ");
}
输出:
07 45 19
答案 3 :(得分:0)
String s = "07:45:19PM";
String heys[] = s.split(":|PM");
String parsedString = new StringBuilder().append(heys[0]).append(" ").append(heys[1]).append(" ").append(heys[2]).toString();