Portál AbcLinuxu, 31. října 2025 21:17
 10.11.2009 14:44
martidlo             | skóre: 3
             | blog: Vztekárna
             | Opava
        10.11.2009 14:44
martidlo             | skóre: 3
             | blog: Vztekárna
             | Opava
        Řešení dotazu:
To samo o sobě nestačí. Vždyť jen pozice tečky v příkladu:
arečv mesj lavomargorp.
Chce to doplnit zadání. I tak to na mě dělá dojem, že ta rutina má převádět do malých písmen — viz počáteční písmenko věty. Pak to ale nebude pracovat obousměrně. Buď je špatně specifikace, nebo příklad. S tímhle materiálem se prostě nedá dělat…
s/\>/#/g2. Dokud je úspěšné (tj. provede se nenulový počet nahrazení), posunuj znak před značkou, kam patří, tj. ekvivalent:
s/(\w*)(\w)#(\w*)/\1#\3\2/g3. Odstraň značky:
s/#//gKonkrétní tvar regulárních výrazů se trochu liší podle jazyka a nahrazení se bude dělat nějakou funkcí/metodou, ale lze to takto udělat v čemkoli od sedu přes C po Javu.
 10.11.2009 17:15
martidlo             | skóre: 3
             | blog: Vztekárna
             | Opava
        10.11.2009 17:15
martidlo             | skóre: 3
             | blog: Vztekárna
             | Opava
         
            Podivej se na tridu StringBuilder ze zakladniho baliku java.lang - jeji popis nades v JDKcku. Ta obsahuje metodu Reverse(). Coz by melo prakticky byt co hledas, jen to spravne pouzit ...  . Navic je Stringbuilder optimalnim resenim - v pripade velkeho mnozstvi casto se menicich retezcu nebudes vytvaret stale nove instance, jako by tomu bylo v pripade Stringu.
. Navic je Stringbuilder optimalnim resenim - v pripade velkeho mnozstvi casto se menicich retezcu nebudes vytvaret stale nove instance, jako by tomu bylo v pripade Stringu.
 10.11.2009 23:50
Milan Lajtoš             | skóre: 22
             | blog: /blog/babraq
        10.11.2009 23:50
Milan Lajtoš             | skóre: 22
             | blog: /blog/babraq
            
        
public static String sifruj(String s){
	StringTokenizer st = new StringTokenizer(s, " .:!?", true);
	String result = "";
	
	while (st.hasMoreTokens()){
		result += (new StringBuilder(st.nextToken())).reverse();
	}
	
	return result;
}
$x = "Vcera jsem programoval.";
$r = "";
while ($x =~ m/^([^A-Za-z]*)([A-Za-z]+)(.*)$/)
{
        $r .= $1 . reverse($2);
        $x = $3;
}
$r .= $x;
print "$r\n";
            
$x = "Vcera jsem programoval.";
while ($x =~ s/^([^A-Za-z]*)([A-Za-z]+)(.*)$/$1 . reverse($2) . $3/e)
{
        print "$x\n";
}
vysledek
Vcera jsem programoval. arecV jsem programoval. Vcera jsem programoval. ...ale hlavni duvod proc jsem pouzil jenom m// je ze nevim na jaky urovni jsou RE v jave tak jsem to nechtel zbytecne komplikovat...
 10.11.2009 21:19
Milan Lajtoš             | skóre: 22
             | blog: /blog/babraq
        10.11.2009 21:19
Milan Lajtoš             | skóre: 22
             | blog: /blog/babraq
            
        
String novy_retazec = "";
String slovo;
[kym nie som na konci retazca]
  slovo = "";
  [kym nenarazim na koniec slova] //napr. medzera
    slovo = [aktualne pismeno] + slovo;
  novy_retazec += " " + slovo;
        Tiskni
            
                Sdílej:
                 
                 
                 
                 
                 
                 
            
    
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.