У меня есть строка на Java, она начинается с косых черт, но количество косых черт неизвестно. Как я могу удалить все эти косые черты при запуске?

Например:

String a="//abc";

Должен выводить abc.

String b="////abc";

Должен также выводить abc.

0
typeof programmer 18 Фев 2016 в 23:38

3 ответа

Лучший ответ

Для этого можно использовать простой шаблон:

private static final Pattern HEADING_SLASHES = Pattern.compile("^/+");

// ...

public static String removeHeadingSlashes(final String input)
{
    // .replaceFirst() or .replaceAll() will have the same effect, so...
    return HEADING_SLASHES.matcher(input).replaceFirst("");
}
2
fge 18 Фев 2016 в 23:00
public static void main(String[] args) {
    String slashString = "//ab/c";

    System.out.println(slashString.replaceAll("^/+", ""));
}

Вывод:

ab / c

1
Blake Yarbrough 18 Фев 2016 в 20:50

Уловка состоит в том, чтобы удалить ведущие косые черты, а не все косые черты.

public class StringTest {

    public static void main(String[] args) {
        String url = "////abc//def";
        System.out.println(url.replaceFirst("/+", ""));
    }

}
2
Gilbert Le Blanc 19 Фев 2016 в 00:39