• 1
  • 2
Dodaj kartkę Dodaj bana
Powód wlepienia kartki
Wybierz wątek docelowy z listy lub wpisz jego ID
  • Tomo

    Witam.
    W jaki sposób można posortowac stringi w javie alfabetycznie (chodzi mi o sam warunek sprawdzenia który z nich powinien być pierwszy, w stylu if (string1 < string2))
    No bo np w C mozna było to zrobić przez porównanie wskaźników na ich pierwsze litery, a tu nie mam pojęcia jak to zrobić.
  • steelheart

    API sie nie czytało co ? :P
    String.compareTo()
    lub
    Collator.compare() jesli chcesz porownywac z innym locale niz w systemie
  • Anonim

    Heh, no tak politechnika warszawska... w C...
    Jeśli już to porównać wartości wskaźników dla pierwszych liter, w kodzie różnica mała ale w działaniu duża :)

    A co do Javy, to Collections.sort plus własna implementacja Comparatora.
  • steelheart

    Nie utrudniaj koledze :P
    chciał tylko 2 stringi porównać

    a jak sobie to C radzi z roznymi locale ?
  • SkiLo

    C sobie radzi w ten sposob ze bierze locale systemowe, mozna samemu ustawic locale,ale i tak moze to byc tylko jedno z obslugiwanych przez system. Wiem cos o tym bo probowalem sortowac kiedys polskie krzaki pod QNX (a tam nie ma locale :/).
  • spec

    TCHAR (winda) tudziez rozniste makra zalezne od platformy, wersje roznych funckji _wstrcmp itp itd
    i w koncu klasa string (ktora chyba o ile wiem sobie nie radzi)

    za to:
    C++ sobie radzi ze wszystkim (tylko naklad pracy moze byc wiekszy), a java niet. sorry..
    (java jest nudna)

    --
    peace!
  • Anonim

    Nie no...
    Jeśli się nie myle to Java jest językiem zupełnym w sensie Turinga, a co za tym idzie też sobie radzi ze wszystkim.
    I jeśli już to najwyżej Ty nie wiesz jak coś zrobić w Javie :D
  • Adept

    java to akurat zajebiście obsługuje wszystkie lokalizacje.. jeśli ty nie wiesz jak to zrobić to wcale nie znaczy że się nie da... no chyba że uważasz inaczej...
  • spec

    >I jeśli już to najwyżej Ty nie wiesz jak coś zrobić w
    >Javie :D

    mozliwe.
    jednak doswiadczenie podpowiada mi inaczej.
    jak narazie to nie zrobisz wydajnego silnika 3d w javie np.
    (i dlugo chyba nie zrobisz)
  • Dzemus

    "Wydajny" jest pojęciem względnym :>
  • spec

    kiedys chcialem napisac "prezentacje multimedialna w 64kb" w javie..

    owszem java3d nawet zadziwiala mnie swoja wydajnoscia(jak na jave), jednak przestalo sie to wszystko wyrabiac, przy blobach 32x32x32, i mixowaniu muzyki via java sound..

    drugi przyklad.
    zrezygnowalem z javy3d na rzecz jogla, i niestety nawet najprostsza animacja ciela. (czemu? moze jogl jest zle napisany..;>)

    tak wiec, java tak, ale nie do takich zastosowan ktore szczegolnie lubie..

    i jeszcze jedno. mam wrazenie ze upada w ogole kunszt programowania, do czego sie przyczyniaja wlasnie jezyki interpretowane jak java albo c#..
    i srodowiska jak eclipse..
    ja nie potrzebuje tak zachwalonego formatowania kodu(nawet jest to niewskazane)
    refractor to potezne narzedzie, ale nie jest mi tez potrzebne (w C++)
    coz jak komus zalezy na szybkosci i wydajnosci kodu (nie kodowania) to jawka to chybione narzedzie..
  • яazo я

    pewno jesteś osobą która zaraz stwierdzi że prawdziwy programista czy webmaster to ma używa notatnika ??

    java (c# chyba też) nie są językami interpretowanymi.

    a eclipse jest potężnym narzędziem, jeśli nie potrafisz z niego korzystać lub wydaje Ci się niepotrzebny, to znaczy że nie jest dla Ciebie.
    w dużych projektach (więcej niż 1-3 osoby, które się pisze kilka miesięcy) takie 'sztuczki/tricki/bajerki' są już przydatne. programiści mogą się skupić na tym na czym powinni, ich wydajność się zwiększa.

    nie mówię o tym że piszę np. kod niechlujnie, dbam np. o czytelne sformatowanie (np. wcięcia), ale chociażby funkcja 'autoident' (znana od ponad 10 lat) zwiększy wydajność (w porównaniu z notatnikiem, gdzie musiałbyś robić w każdej nowej linii wcięcia samemu)
  • spec

    tego nie powiedzialem ze uzywam notatnika.
    uzywalem akurat eclipsa, z refractorem, z quick fixem, automatycznym dodawaniem importow..
    "intepretowane" tylko tyle ze dzialaja na warstwie ktora interpretuje byte code.

    no wlasnie a kto jest prawdziwym programista.

    i nie chodzi tu o wciecia..

  • spec

    sorry tak jakos mnie naszlo; /
  • spec


    *pv+++=*vv+++wind;
  • яazo я

    może byłem zbyt surowy.
    chodziło mi o to, że przy projektach gdzie są 3 pliki, każdy ma po 500 linii to refactoring może nie być taki przydatny.
    ale przy projektach gdzie jest znacznie więcej klas/plików/kodu.
    a do tego zaczynasz się wgłębiać w kod, który pisał ktoś inny, przydają się bajery typu:
    zaznaczam jakąś nazwę (np. nazwa metody lub zmienna),
    a Eclipse podświetla mi wszystkie wystąpienia jej w pliku, włącznie z paskiem przy scroll'u.
    albo funkcja 'call hierarchy'.

    a kto jest dobrym programistą?
    trudno powiedzieć, ktoś kto dobrze orientuje się w kodzie, ktoś kto ma pewien zmysł odpowiedniego myślenia, potrafi sobie do jakiegoś problemu od razu wyobrazić wstępne rozwiązanie/algorytm.
    nie musi być zawodowym programistą. też nie musi znać się na wszystkim/na wszystkich językach.

    zapodałeś wyżej ciekawy trick na wskaźnikach i operatorach post i pre incrementacji.
    nie rozwiążę go, C/C++ używam od kilku lat sporadycznie. jednakże nadal powiem o sobie że znam C/C++ dobrze (nie perfektycjnie).
    poprostu nie używam takich zawiłych tricków, w życiu takich rzeczy się nie pisze, bo są za mało czytelne:)
  • spec

    to dodam ze tam jeszcze bylo przeciazanie operatora dodawania..
    (bo te wskazniki to nie wskaznikod do typow prymitwnych tylko do wektorow; >)

    moim zdaniem to C++ to esencja programowania tak naprawde, potezny jezyk.
    nie zawsze da sie rozwinac skrzydelka obiektowosci, po za tym kazdy kto troche popisze tych "malych" projetkow przezuci sie na "c+".
    dodam ze obietkowosc przydaje sie i ma uzasadnienie do duzych projektow 50 000+ lini. (taka moja definicja) wtedy reuse jest najwiekszy.
    pelne OOP daje ta przewage nad psuedo, ze masz porzadek i ten reuse. jednak przy odrobinie wprawy mozna utrzymywac porzadek w kodzie mniej lub bardziej obiektowym, ale jest to trudniejsze.
    chyba w tym momencie przydaje sie myslenie modulami.

    27k to juz bylo dla mnie duzo.
  • spec

    nie mowie ze nie mialem romansa z jawka; >
    ale jednak ciagle wracam do C++.

    offtop i NTG straszny sie zrobil :D
  • Maciek Makowski

    > pelne OOP daje ta przewage nad psuedo, ze
    > masz porzadek i ten reuse. jednak przy odrobinie
    > wprawy mozna utrzymywac porzadek w kodzie
    > mniej lub bardziej obiektowym, ale jest to
    > trudniejsze.
    > chyba w tym momencie przydaje sie myslenie
    > modulami.

    W OOP nie chodzi code reuse -- to jest osiągalne bez żadnych mechanizmów obiektowości, wystarcza język pozwalający na definiowanie abstrakcyjnych typów danych i operacji na nich. A jeszcze lepiej oferujący polimorfizm parametryczny -- czyli coś w świecie języków obiektowych prawie nie znane.

    Główną zaletą podejścia obiektowego jest łatwość modelowania systemów i procesów występujących w świecie rzeczywistym.
  • spec

    tak
  • 1
  • 2