Манипулирование строками в Java (всегда проверяйте строку с «//») - PullRequest
1 голос
/ 23 февраля 2012

Каков наилучший способ обеспечить следующее:

Я хочу убедиться, что определенной строке всегда будет предшествовать “//“.то есть ровно две косые черты.

Указания для входной строки:

  • Может содержать другие косые черты в строке;(например, photos/comments);
  • Может уже содержать 0-n число других слешей в начале (например, ///photos, /photos, photos, //photos и т. д.).

РЕДАКТИРОВАТЬ

Кстати: если строка неправильно отформатирована, я бы хотел исправить это так, что она делает.

Ответы [ 5 ]

3 голосов
/ 23 февраля 2012

Вы можете заменить регулярное выражение "^/*" на "//":

str = str.replaceFirst("^/*", "//");

Это удалит все ведущие косые черты (если таковые имеются) и вставит ровно две косые черты в начало строки. Он не затронет любые существующие косые черты, которые не находятся в начале строки.

0 голосов
/ 23 февраля 2012

Нет медленных регулярных выражений + минимальные накладные расходы на память / восстановление.

public String fix(String str) {
    int n = 0;
    while(n < str.length() && str.charAt(n) == '/') { ++n; }

    switch (n) {
        case 0: return "//" + str;
        case 1: return "/" + str;
        case 2: return str;
        default: return str.substring(n - 2); 
    }
}
0 голосов
/ 23 февраля 2012

string = "//" + string.replaceFirst ("^ / *", "");

0 голосов
/ 23 февраля 2012
String yourString="something";
yourString = !yourString.startsWith("//")?"//"+yourString:"";
0 голосов
/ 23 февраля 2012

См. Совпадения String # (java.lang.String) , метод:

Использование ровно двух слэшей на передней панели:

boolean result = "//".matches("^/{2}");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...