muszę przyciąć ciąg w Javie, tak aby:trymowania String w Javie natomiast zachować pełną słowo
Szybki brązowy lis przeskoczył nad psem laz.
staje
Szybki brązowy ...
W powyższym przykładzie, mam przycinanie do 12 znaków. Jeśli po prostu użyć podciąg chciałbym uzyskać:
Szybkie br ...
Mam już sposób to zrobić przy użyciu podciąg, ale chciałem wiedzieć, co jest najszybszy (najbardziej wydajny) sposób, aby to zrobić, ponieważ strona może mieć wiele operacji przycinania.
Jedyny sposób, w jaki mogę myśleć, to podzielić sznur na spacje i złożyć go z powrotem, dopóki jego długość nie przekroczy zadanej długości. Czy istnieje inny sposób? Być może bardziej efektywny sposób, w jaki mogę użyć tej samej metody, aby wykonać "miękkie" wykończenie, w którym zachowuję ostatnie słowo (jak pokazano w powyższym przykładzie) i twarde wykończenie, które jest raczej podłańcuchem.
Dzięki,
Jak 'StringBuffer' pomaga wydajność tutaj? Nie ma powodu, dla którego 'substring',' indexOf' i 'length' byłyby szybsze w' StringBuffer' niż w 'String'. –
Pozwól mi wyjaśnić, pytający powiedział, że tokenizuje, a następnie ponownie łączy łańcuch. Za każdym razem, gdy dołącza nowy token z powrotem do łańcucha, cały ciąg jest niszczony i odtwarzany. W przypadku długich łańcuchów operacja ta jest znacznie droższa niż użycie 'StringBuffer'. Chociaż zgadzam się, różnica w wydajności jest prawdopodobnie znikoma, biorąc pod uwagę, że 'StringBuffer' jest tworzony i kiedy wracamy, efektywnie tworzymy ciąg co najmniej 3 razy (podłańcuch, dopisywanie kropek, ucieczka [, przycinanie]). – Ali
Problem polega na tym, że w twoim kodzie nic nie dodajesz do 'StringBuffer'. –