Java: метод split () со специальным символом канала

У меня есть строка = "Hello-new-World". И когда я использую метод split () с различными значениями регулярных выражений, он действует по-разному.

String str = "Hello-new-world"
String[] strbuf=str.split("-");
for(int i=0;i<strbuf.length;i++)
 System.out.print(strbuf[i]+" ");

Вывод, который я получаю:

hello
new
world

тогда как, если я изменю свою строку на «Hello | new | world», я получу совершенно другой ответ. Новый вывод становится:

h
e
l
l
o
|
n
e
w
|
w
o
r
l
d

Может кто-нибудь объяснить, что может быть причиной этого.

Ответы на вопрос(7)

Ваш ответ на вопрос