Diskuze: Rozdělení textu na věty

C# .NET .NET (C# a Visual Basic) Rozdělení textu na věty American English version English version

Avatar
Libor Šimo (libcosenior):

A keď mám takýto text:
"Ked som na to prisiel, poslal som to na sdraco@devbook.cz. Netacilo to, tak som to musel poslat este na libcosenior@devbook.net. Konecne boli spokojni."
Ako toto rozdeliť na vety?

Editováno 2.6.2013 18:02
Odpovědět 2.6.2013 18:00
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Libor Šimo (libcosenior):

A ešte jedna vec:
string text = "Je mi zima, bude asi snezit, nemam sa kde skryt.";
string[] slova = text.Split(' ', ',', '.');
Vznikne pole o 13 prvkoch:
Je
mi
zima

bude
asi
snezit

nemam
sa
kde
skryt

Až tu je koniec.
Dá sa to vyriešiť tak, že najskôr odstránim '.' a ',' tak, že prepíšem text do druhého reťazca bez nich a potom použijem:
string[] slova = textBezBotkyCi­arky.Split(' ');
Potom to už vypíše správne, ale mne sa to zdá príliš zdĺhavé.
Nie je na to nejaká finta?

Nahoru Odpovědět 2.6.2013 18:23
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
Petr Nymsa:

Používej tlačítko Vložit kód, tohle se nedá číst. Samozřejmě že ti to rozbije (pokud dobře čtu). Splituješ podle MEZERY , ČÁRKY a TEČKY.

Editováno 2.6.2013 18:26
Nahoru Odpovědět 2.6.2013 18:25
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Libor Šimo (libcosenior):

Dobre čítaš. Ale čo by si mi poradil, aby sa to nerozbilo? Podľa čoho splitovať?
Ak budem len podľa MEDZERY, ostanú mi tam slová s čiarkou a tečkou.

Editováno 2.6.2013 18:30
Nahoru Odpovědět 2.6.2013 18:28
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
Petr Nymsa:

Na věty rosplituješ pomocí . ! ? Ovšem splitování ti vymaže znaky co tam byly, reps. znaky podle kterých jsi splitoval. Musíš si je někam uložit a poté je k tomu zase přidat.

A jednotlivá slova tedy rosplituješ pomocí MEZERY a poté přes replace vymžaeš zbytky jako . ? !

TAkhle byc to řešil já, jednoduché.

Pozn. Používej Odpověděť. Bez toho si všimnu odpovědi za dlouho nebo vůbec

Nahoru Odpovědět 2.6.2013 18:45
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Petr Nymsa
Libor Šimo (libcosenior):

A keď mám takýto text:
"Ked som na to prisiel, poslal som to na sdraco@devbook.cz. Netacilo to, tak som to musel poslat este na libcosenior@devbook.net. Konecne boli spokojni."
Ako toto rozdeliť na vety?
Tam sú tečky aj v emailoch aj na konci vety.

Editováno 2.6.2013 18:56
Nahoru Odpovědět 2.6.2013 18:56
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
Michal Žůrek (misaz):

jednoduše rozděluj podle tečka mezera.

Nahoru Odpovědět 2.6.2013 18:57
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na Michal Žůrek (misaz)
Libor Šimo (libcosenior):

To ma napadlo tiež, ale do char nedám dva znaky?

Nahoru Odpovědět 2.6.2013 19:17
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Petr Nymsa
Libor Šimo (libcosenior):

@Zirko, myslíš to takto nejak?

static void Main(string[] args)
 {
     string text = "Je mi zima, bude asi snezit, nemam sa kde skryt.";

     System.Console.WriteLine("Original text: '{0}'", text);

     string[] slova = text.Split(' ');
     string[] pom = new string[slova.Length];
     for (int i = 0; i < slova.Length; i++)
     {
         pom[i] = slova[i].Replace(',', ' ');
     }
     for (int i = 0; i < pom.Length; i++)
     {
         slova[i] = pom[i].Replace('.', ' ');
     }
     foreach (string s in slova)
     {
         System.Console.WriteLine(s);
     }

     // Keep the console window open in debug mode.
     System.Console.WriteLine("Press any key to exit.");
     System.Console.ReadKey();
 }
Nahoru Odpovědět 2.6.2013 19:50
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
Michal Žůrek (misaz):

ale můžeš to replecnout za nějaký jeden spešl znak a pomocí toho to pak rozdělíš. Třeba za ϥ to se ve větě asi težko objeví.

Editováno 2.6.2013 19:55
Nahoru Odpovědět 2.6.2013 19:53
Nesnáším {}, proto se jim vyhýbám.
Avatar
Nahoru Odpovědět 2.6.2013 20:19
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Libor Šimo (libcosenior)
David Čápka:

Split bere pole znaků, již jsem ti to psal, můžeš si jich tam dát kolik chceš. Volat ho 2x je nesmysl.

Nahoru Odpovědět 2.6.2013 20:35
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Michal Žůrek (misaz):

pak ale ještě musí ošetřit ty empty co tam vzniknou a na to je tam myslím druhý parametr.

Nahoru Odpovědět 2.6.2013 20:44
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 2.6.2013 20:54
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 14 zpráv z 14.