试图理解别人的代码。使用split()
String e1 = "y=2x-5";
String[] t1 = e1.split("(y=)|(x\\+?)");
将其拆分为。 2
,-5
。
我已经用Google搜索,但无法在String
中找到这些运营商的解释。谢谢你的帮助。除了列出的资源。这是一个关于正则表达式的附加教程
https://docs.oracle.com/javase/tutorial/essential/regex/char_classes.html
答案 0 :(得分:1)
String对象中的Split方法需要regular expression。在你的代码中,字符串(y =)|(x \ +?)是一个正则表达式,然后\ +表示在字符串e1中查找文字字符“+”,并且?表示字符'+'是可选的(可能在字符串e1中出现或不出现。)
答案 1 :(得分:0)
.split()
使用正则表达式作为参数。
如果您搜索正则表达式引用,它将解释运算符的含义以及如何使用它们。
这是一个很好的正则表达式测试程序,可以在您键入时为操作符提供上下文帮助:http://regex101.com/
关于你的正则表达式,它会像这样崩溃:
"(y=)|(x\\+?)"
转义处理后,分解为:
(y=)|(x\+?)
()
告诉正则表达式这是一个match group
,这意味着如果可以找到它,我们想要返回一些内容。
(y=)
表示匹配找到的任何文字y=
文字。
(x\+?)
表示匹配任何文字x
,后跟文字+
。但是?
是一个运算符,说前一个字符可以出现零次或多次。它基本上表示,如果有x,则匹配它和任何后续的+
字符。
由于您将此传递给split()
,因此该方法使用这些匹配将字符串分解为组件。
这是说将字符串拆分为y=
或x[+[+[...]]]
。
在您的情况下,它会在y=
和x
分割,从而产生2
和-5
。