Aktywne Wpisy
Nigirium_Ignis +1712
Dzisiaj uratowałem człowiekowi życie! Na zakładzie w pracy kolega około 50 lat padł blady jak ściana i jako jedyny potrafiłem robić resuscytację. Robiłem ją do przyjazdu karetki, patrząc na jego bladą, wykrzywioną i oplutą przez samego siebie twarz. Myślałem, że to już jego koniec. Sam zarządziłem wszystkim, bo wszyscy spanikowali. Dowiedziałem się przed chwilą, że będzie żył, a do tego czasu nie mogłem się pozbierać. Pamiętajcie drogie wykopki, że warto posiadać taką
fundacjawosp +602
❤️ 32. Finał WOŚP zagra w niedzielę, 28 stycznia 2024 roku! Gramy pod hasłem „Płuca po pandemii. Gramy dla dzieci i dorosłych!”, a tegorocznym motto zbiórki jest „Tu wszystko gra OK!”. W tym roku centrum Letniej Zadymy w Środku zimy znajdzie się w nowym miejscu — na Błoniach PGE Narodowego w Warszawie!
❤️ Tegoroczny Finał dedykowany będzie zakupowi sprzętu do diagnozowania, monitorowania i rehabilitacji chorób płuc pacjentów na oddziałach pulmonologicznych dla dziec
❤️ Tegoroczny Finał dedykowany będzie zakupowi sprzętu do diagnozowania, monitorowania i rehabilitacji chorób płuc pacjentów na oddziałach pulmonologicznych dla dziec
Problem: string w postaci liczba spacja liczba spacja(...) spacja spacja #num: liczba, z którego należy wydobyć ostatnią liczbę(ilość liczbo spacji na początku dowolna, liczby dowolnej długości). Przykład:
"12 18 #num: 338921"
Rozwiązanie:
String input = "12 18 #num: 338921";
Pattern p = Pattern.compile("(\d+[ ])+[ ]#Num: ");
Matcher m = p.matcher(input);
if(m.find()){
result = input.substring(m.end()).trim();
}
Pytanie: czy to jest wydajne rozwiązanie, czy można to zrobić mądrzej/lepiej/szybciej?
#programowanie #java #regexp
#num
to można o wiele prościej:Pattern p = Pattern.compile("#num: (\d+)");
Matcher m = p.matcher(input);
if (m.find()) {
result = m.group(1);
}
lastIndexOf(' ')
da ci pozycję tuż przed liczbą.return Integer.parse(input.substring(input.lastIndexOf(' ') + 1));
@Rincewind: interesuje mnie tez ciąg tych liczn Przed #
"#num:"
. Regexp niewiele tu pomoże, najprościej będzie zrobić split linii po spacji i pętelka. :)List numbers =
new
ArrayList<>();
Integer specialNumber =
null
;
``````
List tokens = Arrays.asList(line.split(
"\s+"
));
Iterator iter = tokens.iterator();
while
(iter.hasNext()) {
String token = iter.next();
if
(!
"
#num:"
.equals(token)) {
numbers.add(Integer.parseInt(token));
}
else
{
specialNumber = Integer.parseInt(iter.next());
break
;
}
}
Tu masz działający przykład: http://ideone.com/LZu6oJ
"#num:"
i liczbę po tym elemencie. Więc masz wszystko. I – gwarantuję – regexpem tego ani szybciej, ani wygodniej, ani bardziej optymalnie nie #!$%@?. ( ͡° ͜ʖ ͡°)line.split("#num:");
:P