Начиная с Java 8, можно также воспользоваться методом join()
, предоставленным классом String , чтобы распечатывать элементы массива без скобок и разделяться разделителем выбора (который является символом пробела для примера, показанного ниже):
String[] greeting = {"Hey", "there", "amigo!"};
String delimiter = " ";
String.join(delimiter, greeting)
Выход будет «Привет, амиго!».
Вы создаете регулярное выражение, передавая строку конструктору RegExp.
Вам нужно избежать \
, чтобы ваш строковый литерал мог выразить его как данные, прежде чем преобразовать его в обычный выражение.
Внутри кода, в котором вы создаете строку, обратная косая черта сначала является символом escape-кода javascript, что означает, что escape-последовательности, такие как \t
, \n
, \"
и т. д., будут переведены в их javascript-аналог (вкладка, новая строка, цитата и т. д.), и это будет сделано частью строки. Double-backslash представляет собой одиночную обратную косую черту в самой собственно строке, поэтому, если вам нужна обратная косая черта в строке, вы сначала избегаете ее.
Итак, когда вы создаете строку, говоря var someString = '(\\s|^)'
re действительно делает создание фактической строки со значением (\s|^)
.
\ используется в Strings для вызова специальных символов. Если вам нужна обратная косая черта в вашей строке (например, для \ in \ s), вам нужно избежать ее с помощью обратного слэша. Итак, \ становится \\.
EDIT: Даже нужно было сделать это здесь, потому что \\ в моем ответе обратился к \.
Regex нуждается в строчном представлении \s
, которое в JavaScript может быть получено с использованием литерала "\\s"
.
Вот живой пример, чтобы проиллюстрировать, почему "\s"
недостаточно:
alert("One backslash: \s\nDouble backslashes: \\s");
Обратите внимание, как дополнительный \
перед \s
изменяет выход.