我试图用连字符和字符分割字符串但不确定如何使用正则表达式拆分。字符串是这样的:
-u tom -p 12345 -h google.com
连字符和字符的位置可以互换,可以显示多少个。我喜欢他们回到阵列中。以下是我到目前为止的情况:
Scanner reader = new Scanner(System.in);
String entireLine = reader.nextLine();
String[] array = entireLine.split("–", -1);
我喜欢的结果是:
-u tom
-p 12345
-h google.com
感谢。
答案 0 :(得分:6)
试试这个:
String[] array = entireLine.split("(?<!^)(?=-)");
背后的负面看法将阻止在行首开始分裂。
答案 1 :(得分:2)
我会使用以下内容:
String[] array = entireLine.split("\\-", -1);
// or
String[] array = entireLine.split("\\–", -1);
它会给你
你好吗p 12345
h google.com
答案 2 :(得分:1)
split
方法在其参数中使用正则表达式,因此您可以像这样使用正向前瞻
String[] array = entireLine.split("(?=-)");
您在与您的问题类似的问题中对此有一个很好的解释:How to split String with some separator but without removing that separator in Java?
答案 3 :(得分:0)
你可以试试这个:
String[] array = entireLine.split("-*(\\s+)");