PHP |反转字符串

PHP为我们提供了许多可以用来操作字符串的内置方法。在本文中,我们将学习如何使用PHP中可用的各种方法反转字符串。

null

例如:

Input : GeeksforGeeks
Output : skeeGrofskeeG

Input : 12485
Output : 58421

下面我们讨论了在PHP中反转字符串的三种基本且最常用的方法:

  1. 使用strev()反转字符串 :strrev()函数是PHP中的内置函数,用于反转字符串。此函数以字符串作为参数,并返回一个反向字符串。

    语法 :

    strrev($string)

    下面是使用strrev()反转字符串的程序的实现:

    <?php
    // PHP program to reverse a string using strrev()
    function Reverse( $str ){
    return strrev ( $str );
    }
    // Driver Code
    $str = "GeeksforGeeks" ;
    echo Reverse( $str )
    ?>

    
    

    输出:

    skeeGrofskeeG
    
  2. 使用递归和substr()反转字符串 :我们还可以使用递归和substr()函数反转字符串。函数用于获取原始字符串的子字符串。这里我们定义了一个函数Reverse(),其中字符串作为参数传递。在每次递归调用期间,我们都使用substr()方法提取参数字符串的第一个字符,并通过将字符串的剩余部分作为参数传递,再次调用Reverse()函数,并将当前调用返回的字符串末尾的第一个字符连接起来。

    以下是上述理念的实施:

    <?php
    // PHP function to reverse a string using
    // recursion and substr()
    function Reverse( $str ){
    // strlen() used to calculate the
    // length of the string
    $len = strlen ( $str );
    // Base case for recursion
    if ( $len == 1){
    return $str ;
    }
    else {
    $len --;
    // extract first character and concatenate
    // at end of string returned from recursive
    // call on remaining string
    return Reverse( substr ( $str ,1, $len ))
    . substr ( $str , 0, 1);
    }
    }
    // Driver Code
    $str = "GeeksforGeeks" ;
    print_r(Reverse( $str ));
    ?>

    
    

    输出:

    skeeGrofskeeG
    
  3. 在不使用库函数的情况下就地反转字符串 :在位反转字符串是指通过修改原始字符串本身,而不是复制原始字符串来反转字符串。我们可以在不使用PHP中任何库函数的情况下就地反转字符串。这样做的想法是从两侧穿过原始弦,即从左侧和右侧,直到到达弦的中间。并在遍历时不断交换字符。因此,我们将简单地交换字符,从第一个和最后一个开始,然后是第二个第一个和第二个最后一个,依此类推,直到到达字符串的中间。

    以下是上述理念的实施:

    <?php
    // PHP function to in place reverse a string
    // without using library functions
    function Reverse( $str ){
    for ( $i = strlen ( $str )-1, $j =0; $j < $i ; $i --, $j ++)
    {
    $temp = $str [ $i ];
    $str [ $i ] = $str [ $j ];
    $str [ $j ] = $temp ;
    }
    return $str ;
    }
    // Driver Code
    $str = "GeeksforGeeks" ;
    print_r(Reverse( $str ));
    ?>

    
    

    输出:

    skeeGrofskeeG
    
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享