• Publicidad

Espaciar una cadena

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Espaciar una cadena

Notapor anush » 2010-01-02 11:48 @533

¡Buenas!
¿Cómo puedo pasar de :

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$cadena = 'adagfdkjsbfjbdvl';
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


a

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$cadena = 'adag fdkj sbfj bdvl';
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
??
Gracias.
Última edición por explorer el 2010-01-02 11:52 @536, editado 2 veces en total
Razón: Tildes
anush
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2009-12-30 13:15 @594

Publicidad

Re: Espaciar una cadena

Notapor explorer » 2010-01-02 12:00 @541

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $nueva_cadena;
for (my $i = 0; $i < length $cadena; ) {           # Para todo lo largo de la cadena
    $nueva_cadena .= substr $cadena, $i, 1;        # Copiamos una letra de la $cadena
    $i++;                                          # Siguiente posición
    if ($i % 4 == 0  and  $i != length $cadena) {  # ¿Es la posición múltiplo de 4 y
                                                   # no es el final de $cadena?
        $nueva_cadena .= ' ';                      # Sí, agregamos un espacio
    }
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Espaciar una cadena

Notapor explorer » 2010-01-02 12:12 @550

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $nueva_cadena = $cadena;              # Sacamos una copia

for (my $i                               # $i será la posición donde poner el ' '
        = int((length($cadena)-1)/4)*4;  # Inicialmente, en la última posición
     $i > 0 ;                            # Repetimos hasta llegar a la izquierda
     $i -= 4                             # Saltamos de 4 en 4 hacia la izquierda
) {
    substr($nueva_cadena, $i, 0) = ' ';  # Insertamos un ' ' en esa posición
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Espaciar una cadena

Notapor explorer » 2010-01-02 12:19 @555

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
(my $nueva_cadena = $cadena)    # Sacamos una copia

    =~ s/(.{4})(?!$)/$1 /g;     # (.{4}) Buscamos bloques de 4 caracteres
                                # (?!$)  que no estén al final de la cadena
                                # $1     y los sustituimos por ellos mismos
                                #        más un carácter en blanco
    ;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Espaciar una cadena

Notapor explorer » 2010-01-02 12:24 @558

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $nueva_cadena        # Mi $nueva_cadena
    = join ' ',         # es la unión, con un ' ', de todas las partes
      grep { /./ }      # que al menos tengan una letra
      split /(.{4})/,   # extraídas de 4 en 4 letras
      $cadena           # de la cadena original
    ;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Espaciar una cadena

Notapor explorer » 2010-01-02 12:26 @559

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $nueva_cadena        # Mi $nueva_cadena
    = join ' ',         # es la unión, con un ' ', de todas las partes
      unpack "(a4)*",   # extraídas de 4 en 4 letras
      $cadena           # de la cadena original
    ;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Espaciar una cadena

Notapor explorer » 2010-01-02 12:49 @576

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $nueva_cadena;

for (my $i = 0; $i < length $cadena; $i+=4) {       # A lo largo de toda la cadena, con saltos de 4 letras
    $nueva_cadena .= substr($cadena, $i, 4) . ' ';  # Copiamos un bloque de 4 caracteres a la $nueva_cadena
                                                    # más un espacio en blanco
}
chop $nueva_cadena;                                 # Quitamos el último espacio en blanco, que sobra
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Espaciar una cadena

Notapor explorer » 2010-01-02 12:54 @579

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $nueva_cadena = '';
my $vieja_cadena = $cadena;

while ($vieja_cadena) {
    my $cacho = substr $vieja_cadena, 0, 4;         # Sacamos una parte, por la izquierda
    $vieja_cadena = substr $vieja_cadena, 4;        # Recortamos la $vieja_cadena
    $nueva_cadena = $nueva_cadena . $cacho . ' ';   # Añadimos la parte a la $nueva_cadena
}
chop $nueva_cadena;                                 # Quitamos último espacio en blanco, que sobra
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Espaciar una cadena

Notapor explorer » 2010-01-02 12:59 @582

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
# Mi $nueva_cadena es la unión, con espacio en blanco,
# de todos los grupos de 4 caracteres que pueda encontrar
# en la $cadena
my $nueva_cadena = join ' ', $cadena =~ /(.{4})/g;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Espaciar una cadena

Notapor explorer » 2010-01-02 13:11 @591

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $nueva_cadena                        # Solución básica: corte y pega
    = substr($cadena, 0, 4) . ' '
    . substr($cadena, 4, 4) . ' '
    . substr($cadena, 8, 4) . ' '
    . substr($cadena,12, 4)
    ;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Siguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 40 invitados