\\ строковый литерал не переводится в \ обратную косую черту

У меня есть строка "ABC DEF", и я хотел бы добавить "\s" между словами, чтобы сделать ее "ABC\sDEF" для совпадений XPath.

String label = "ABC DEF";
String[] arrLabel = label.split("\\s+");
String matches = "\\s";
label=arrLabel[0];
for(int i = 1; i < arrLabel.length; i++){
    label = label + matches + arrLabel[i]; 
    System.out.println("label = " + label); 
}

Но я продолжаю получать этикетку, напечатанную как ABC\\sDEF, Я действительно хочу, чтобы это было ABC\sDEF,

Как мне это сделать?

1 ответ

Почему бы не заменить пространство непосредственно в \s? попробуй это

String label = "ABC DEF ";
label = label.replaceAll("\\s+(?!$)", "\\\\s");
System.out.println(label);

если ваш ярлык не будет заканчиваться пробелами, используйте это вместо

label = label.replaceAll("\\s+", "\\\\s");
Другие вопросы по тегам