abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 17:02 | Pozvánky

Přijďte si popovídat o open source obecně a openSUSE konkrétně s dalšími uživateli a vývojáři. Oslava nového vydání openSUSE Leap se uskuteční 16. prosince od 17:00 v nových prostorách firmy SUSE v Praze. K dispozici bude nějaké občerstvení a DVD pro ty, kdo je sbírají nebo ještě mají mechaniku. Po párty v kanceláři se bude pokračovat v některé z hospod v okolí.

Miška | Komentářů: 8
včera 14:55 | Zajímavý software

Byla vydána verze Alpha 1.0 otevřeného operačního systému pro chytré hodinky AsteroidOS. Podporovány jsou hodinky LG G Watch, LG G Watch Urbane, Asus ZenWatch 2 a Sony Smartwatch 3. Ukázka ovládání hodinek na YouTube. Jaroslav Řezník přednášel o AsteroidOS na chytrých hodinkách (videozáznam) na letošní konferenci OpenAlt.

Ladislav Hagara | Komentářů: 0
včera 13:30 | Zajímavý software

Byly uvolněny zdrojové kódy známé rogue-like hry DoomRL. Počátky hry jsou v roce 2002. Je napsána ve FreePascalu a zdrojový kód je nyní k dispozici na GitHubu pod licencí GNU GPL 2.0. Autor pracuje na nové hře Jupiter Hell, která je moderním nástupcem DoomRL a na jejíž vývoj shání peníze prostřednictvím Kickstarteru.

Blaazen | Komentářů: 0
včera 13:15 | Pozvánky

Přijďte s námi oslavit vydání Fedory 25. Na programu budou přednášky o novinkách, diskuse, neřízený networking atd. Release Party se bude konat 16. prosince v prostorách společnosti Etnetera. Na party budou volně k dispozici také propagační materiály, nová DVD s Fedorou 25 a samozřejmě občerstvení. Přednášky budou probíhat v češtině. Pro více informací se můžete podívat na web MojeFedora.cz. Jen připomínám, že tentokrát jsme zavedli

… více »
frantisekz | Komentářů: 0
9.12. 16:38 | Komunita

Byly zveřejněny videozáznamy přednášek a workshopů z letošní konference OpenAlt konané 5. a 6. listopadu v Brně. K videozáznamům lze přistupovat ze stránky na SuperLectures nebo přes program konference, detaily o vybrané přednášce nebo workshopu a dále kliknutím na ikonku filmového pásu. Celkově bylo zpracováno 65 hodin z 89 přednášek a workshopů.

Ladislav Hagara | Komentářů: 0
9.12. 11:30 | Komunita

Bylo oznámeno, že bude proveden bezpečnostní audit zdrojových kódů open source softwaru pro implementaci virtuálních privátních sítí OpenVPN. Audit provede Matthew D. Green (blog), uznávaný kryptolog a profesor na Univerzitě Johnse Hopkinse. Auditována bude verze 2.4 (aktuálně RC 1, stabilní verze je 2.3.14). Audit bude financován společností Private Internet Access [reddit].

Ladislav Hagara | Komentářů: 4
9.12. 06:00 | Komunita

Na YouTube byl publikován Blender Institute Reel 2016, ani ne dvouminutový sestřih z filmů, které vznikly za posledních 10 let díky Blender Institutu. V institutu aktuálně pracují na novém filmu Agent 327. Dění kolem filmu lze sledovat na Blender Cloudu. Videoukázka Agenta 327 z června letošního roku na YouTube.

Ladislav Hagara | Komentářů: 0
9.12. 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

Ladislav Hagara | Komentářů: 1
8.12. 16:00 | Nová verze

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
8.12. 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 5
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (23%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 810 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: JAVA - rozdelit slovo na pismena

tomes.io avatar 21.12.2012 13:47 tomes.io | skóre: 12 | blog: tomesh
JAVA - rozdelit slovo na pismena
Přečteno: 929×
Ahoj, bojuju s rozdelenim slova na jednotliva pismena. Konkretne bych potreboval ze slova(jednoho retezce), kuprikladu:
M41
dostat jako vystup :
M<41>
. Potrebuju oddelit prvni pismeno a cisla za nim dat do sipek.

Zkousel jsem :
slovo.split("")
s tim ze bych si tam pak ty sipky concatoval, ale ten split() me to na pismena nerozdeli.

Pokud bych rozdelil slovo na pole charu, tak zas asi tezko concatuju ty sipky...

Mohl by nekdo poradit pls?

Řešení dotazu:


Odpovědi

21.12.2012 14:15 Franta
Rozbalit Rozbalit vše Re: JAVA - rozdelit slovo na pismena
Pokud bych rozdelil slovo na pole charu, tak zas asi tezko concatuju ty sipky...
Pak to pole projdeš v cyklu a pomocí StringBuilderu postupně sestavíš nový řetězec – na některá místa přidáš ty šipky.

Měl bys ale upřesnit zadání. Proč chceš šipky přidat zrovna kolem 41? Možná by se ti hodily regulární výrazy – definuješ si vzor, ten může obsahovat skupiny (části textu) a ty si pak vytáhneš a třeba obalíš šipkami.
tomes.io avatar 21.12.2012 14:45 tomes.io | skóre: 12 | blog: tomesh
Rozbalit Rozbalit vše Re: JAVA - rozdelit slovo na pismena
Kolem cisla musi byt sipky. Mam to v zadani. Slouzi to potom pro lepsi parsovani, objekty budou nadale sortovany podle cisel, takze az budu definovat comparTo tak se to bude hodit.

Kazdopadne nakonec jsem to vyresil pres regularni vyrazy, jak jsi rekl. Dostal jsem diky tomu aspon String s cislem, coz uz mi pomohlo:
char[] charArray = word.toCharArray();
String temp = Character.toString(charArray[0]); //getting object letter
                
Pattern pattern = Pattern.compile("^"+temp+"(\\d+)$"); //setting a regex pattern
Matcher matcher = pattern.matcher(word);
    
if(!(matcher.matches())) {
                    
    throw new CatalogIOException("wrong ID format");
}
                
                        
String ID = temp.concat("<").concat(matcher.group(1)).concat(">"); //matcher.gorup(1) returns a string with the object number
xkucf03 avatar 21.12.2012 16:39 xkucf03 | skóre: 45 | blog: xkucf03
Rozbalit Rozbalit vše Re: JAVA - rozdelit slovo na pismena
Tak v druhém kroku můžeš zkusit OOP :-) Místo vymýšlení nějakého pseudojazyka s čísly v závorkách z toho udělej instance nějaké tvé třídy, kde to číslo bude uložené jako int v privátní proměnné.
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
Řešení 1× (danaketh)
22.12.2012 16:57 extremni lama | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: JAVA - rozdelit slovo na pismena
jsou v jave regexy?

v perlu bych to napsal takhle:
s/^([a-z])([0-9]+)/$1<$2>/i;
The enemy of my enemy is still my enemy.
xkucf03 avatar 22.12.2012 19:06 xkucf03 | skóre: 45 | blog: xkucf03
Rozbalit Rozbalit vše Re: JAVA - rozdelit slovo na pismena
Ano, součástí základní knihovny Javy SE jsou regulární výrazy. Napíšeš to třeba takhle:
"M41".replaceAll("([0-9]+)", "<$1>")
(a při opakovaném použití je dobré si regulární výrazy předkompilovat)
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
28.3.2013 14:37 Robo
Rozbalit Rozbalit vše Re: JAVA - rozdelit slovo na pismena
public static String updateText(String str) {
        StringBuffer updatedText = new StringBuffer();
        Matcher matcher = Pattern.compile("\\d+").matcher(str);
        while(matcher.find()) {
            String group = matcher.group();
            StringBuilder replacement = new StringBuilder();
            replacement.append("<").append(group).append(">");
            matcher.appendReplacement(updatedText, replacement.toString());
        }
        matcher.appendTail(updatedText);
        return updatedText.toString();
}
28.3.2013 15:32 DarkKnightCZ | skóre: 12
Rozbalit Rozbalit vše Re: JAVA - rozdelit slovo na pismena

no to potes, takova prasarna... proc navic komentujete 100 dni stary dotaz, kde navic padlo elegantni reseni?

28.3.2013 21:42 Nobody
Rozbalit Rozbalit vše Re: JAVA - rozdelit slovo na pismena
Vubec jste nepochopil vtip.
28.3.2013 21:52 potato
Rozbalit Rozbalit vše Re: JAVA - rozdelit slovo na pismena
Žádný vtip tady není. Jen nesmyslný komentář sto dní starého dotazu.
1.4.2013 20:10 R
Rozbalit Rozbalit vše Re: JAVA - rozdelit slovo na pismena
No az taka "prasarna" to teda nie je, pretoze moja funkcia je o polovicu rychlejsia pri kratkych Stringoch, pri dlhych Stringoch sa to vyrovnava s Tvojim "elegantnym resenim". Este lepsie je ale pouzit pri velmi velkych Stringoch/suboroch Scanner (hasNextInt() + nextInt()), ktory sa da napojit na input stream a nezadrbavat pamat. Ale uznavam, ze 1 riadkova funkcia je elegantna.

import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

    private static final String TEST_STRING = "M23";

    public static void main(String[] args) {
        Date d = new Date();
        Pattern pattern = Pattern.compile("\\d+");

        for(int i = 0; i < 10000000; i++) {
            TEST_STRING.replaceAll("([0-9]+)", "<$1>");

        }

        System.out.println(new Date().getTime() - d.getTime());

        d = new Date();

        for(int i = 0; i < 10000000; i++) {
            updateText(pattern, TEST_STRING);
        }

        System.out.println(new Date().getTime() - d.getTime());

    }

    public static String updateText(Pattern pattern, String str) {
        StringBuffer updatedText = new StringBuffer();
        Matcher matcher = pattern.matcher(str);
        while(matcher.find()) {
            String group = matcher.group();
            StringBuilder replacement = new StringBuilder();
            replacement.append("<").append(group).append(">");
            matcher.appendReplacement(updatedText, replacement.toString());
        }
        matcher.appendTail(updatedText);
        return updatedText.toString();
    }

}

1.4.2013 22:01 R
Rozbalit Rozbalit vše Re: JAVA - rozdelit slovo na pismena
Sorac, samozrejme v teste ma byt kompilacia patternu pred prvym Date d = new Date(); Vysvetlenie ale plati. Na priklade a na mojej masine 7 sekund (dlha fkcia) vs 4 sekundy (1 riadkovy replaceAll).
1.4.2013 22:20 R
Rozbalit Rozbalit vše Re: JAVA - rozdelit slovo na pismena
7 sekund replaceAll vs 4 sekundy dlha fkcia.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.