我有以下代码,但它不起作用。不确定这里有什么问题:
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
String ext_time = "23:24:25+26";
String short_time[] = ext_time.split("+");
System.out.print(short_time[0]);
}
}
我想在23:24:25 + 22中采用字符串23:24:25。我该怎么做?
答案 0 :(得分:4)
您需要转义+
字符:
String short_time[] = ext_time.split("\\+");
通常情况下,加+
字符是regex
中的量词,表示at least one of the previous character/group
。因此要与角色分开,需要进行转义。由于反斜杠\
本身就是一个特殊字符,因此它也需要进行转义。因此,"\\+"
。
答案 1 :(得分:1)
Firts不是括号short_time[]
,
但是好的,我运行了你的代码并且:在线程中出现异常" main" java.util.regex.PatternSyntaxException:悬空元字符' +'接近指数0
' +'是一个regEx的元字符,就像bar或dot一样,你必须使用ext_time.split("\\+");
答案 2 :(得分:1)
在拆分命令中,没有转义的“+”意味着:
'+' - >发生一次或多次,是{1,} X +的缩写 - 查找一个或多个字母X
请在你的正则表达式中转义'+'字符,因此你的新代码将是
String short_time[] = ext_time.split("\\+");
有关拆分正则表达式的更多详细信息,请参阅以下链接: http://www.vogella.com/tutorials/JavaRegularExpressions/article.html