расщепление строки на основе некоторых правил - PullRequest
0 голосов
/ 26 июля 2011

У меня есть номер в формате

10.10.09.09.00

Теперь я хочу найти первые три места:

String getformattedString(Strring str){
  //impl
  return newStr;
}

например 10.10.09. Как я могу это сделать?

Ответы [ 5 ]

4 голосов
/ 26 июля 2011
Pattern regex = Pattern.compile("^(?:\\d+\\.){3}");
Matcher regexMatcher = regex.matcher(subjectString);
if (regexMatcher.find()) {
   // matched text: regexMatcher.group()
}
4 голосов
/ 26 июля 2011

Не нужно использовать регулярное выражение, это тоже будет работать:

String[] fields = str.split("\\.");

return fields[0] + "." + fields[1] + "." + fields[2] + ".";
1 голос
/ 26 июля 2011

Вот решение в одну строку:

public static String getFormattedString(String str) {
    return str.replaceAll("(^(\\d\\d\\.){3}).*", "$1");
}

Вот код теста:

public static void main(String[] args) {
    System.out.println(getFormattedString("10.10.09.09.00"));
}

Вывод:

10.10.09.
0 голосов
/ 19 ноября 2012

Попробуйте тоже так:

return str.Substring(0, str.LastIndexOf(".", str.LastIndexOf(".") - 1) + 1)
0 голосов
/ 26 июля 2011

Регулярные выражения звучит так, как вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...