Java 以破折号分隔
Java split by dash character
我正在尝试用连字符和字符拆分字符串,但不确定如何使用 Regex 进行拆分。字符串是这样的:
–u tom –p 12345 –h google.com
连字符和字符的位置和出现的数量是可以互换的。我希望它们回到数组中。这是我目前所拥有的:
Scanner reader = new Scanner(System.in);
String entireLine = reader.nextLine();
String[] array = entireLine.split("–", -1);
我想要的结果是:
–你汤姆
–p 12345
–h google.com
谢谢。
split
方法在其参数中采用正则表达式,因此您可以像这样使用 positive lookahead
String[] array = entireLine.split("(?=-)");
您在与您类似的问题中对此有很好的解释:How to split String with some separator but without removing that separator in Java?
我会使用以下内容:
String[] array = entireLine.split("\-", -1);
// or
String[] array = entireLine.split("\–", -1);
它会给你
你汤姆
p 12345
h google.com
试试这个:
String[] array = entireLine.split("(?<!^)(?=-)");
后面的负面观察将防止在行首拆分。
你可以试试这个:
String[] array = entireLine.split("-*(\s+)");
我正在尝试用连字符和字符拆分字符串,但不确定如何使用 Regex 进行拆分。字符串是这样的:
–u tom –p 12345 –h google.com
连字符和字符的位置和出现的数量是可以互换的。我希望它们回到数组中。这是我目前所拥有的:
Scanner reader = new Scanner(System.in);
String entireLine = reader.nextLine();
String[] array = entireLine.split("–", -1);
我想要的结果是:
–你汤姆
–p 12345
–h google.com
谢谢。
split
方法在其参数中采用正则表达式,因此您可以像这样使用 positive lookahead
String[] array = entireLine.split("(?=-)");
您在与您类似的问题中对此有很好的解释:How to split String with some separator but without removing that separator in Java?
我会使用以下内容:
String[] array = entireLine.split("\-", -1);
// or
String[] array = entireLine.split("\–", -1);
它会给你
你汤姆
p 12345
h google.com
试试这个:
String[] array = entireLine.split("(?<!^)(?=-)");
后面的负面观察将防止在行首拆分。
你可以试试这个:
String[] array = entireLine.split("-*(\s+)");