ReplaceAll со всеми символами кроме пятизначного числа
Есть строка
String string = "12345jghdi6h90";
Как можно убрать из нее все символы кроме пятизначного числа в начале с помощью replaceAll?
Ответы (3 шт):
Автор решения: gunpi
→ Ссылка
String string = "12345jghdi6h90";
Matcher matcher = Pattern.compile("(\\d{5})([\\d\\w]*)").matcher(string);
matcher.find();
string = string.replaceAll(matcher.group(2),"");
Автор решения: TigerTV.ru
→ Ссылка
Если все равно какое число в начале(значность), то используем следующий вариант:
String s = "12345jghdi6h90";
s = s.replaceAll("^(\\d+)[\\s\\S]*$","$1");
Если в начале должно быть только 5-значное число(к примеру, 6-значное обрезается), то такой вариант
s = s.replaceAll("^(\\d{5})[\\s\\S]*$","$1");
[\\s\\S] - используется вместо ., чтобы обрезать строки с символом \n ("12345jgh\nnni6h90")
Автор решения: Qwertiy
→ Ссылка
Не нужен он тут, всё делается проще:
String string = "12345jghdi6h90";
string = string.substring(0, 5);