Diskuze: Rozdělení textu na věty
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 14 zpráv z 14.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
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 = textBezBotkyCiarky.Split(' ');
Potom to už vypíše správne, ale mne sa to zdá príliš zdĺhavé.
Nie je na to nejaká finta?
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.
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.
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
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.
jednoduše rozděluj podle tečka mezera.
To ma napadlo tiež, ale do char nedám dva znaky?
@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();
}
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í.
@Misaz, díky, to by ma nenapadlo.
Split bere pole znaků, již jsem ti to psal, můžeš si jich tam dát kolik chceš. Volat ho 2x je nesmysl.
pak ale ještě musí ošetřit ty empty co tam vzniknou a na to je tam myslím druhý parametr.
Zobrazeno 14 zpráv z 14.