zoukankan      html  css  js  c++  java
  • PHP处理字符串翻转问题总结

    如何实现字符串的翻转问题?

    延伸开来看,可以实现:

      1.单词的顺序翻转,单词字母顺序不变

      2.整个字符串字母全部翻转

      3.单词顺序不变,单词字母翻转

      4.实现中文翻转

     

    如下示例字符串:

    $str = "haha is houhou";

    1、单词的顺序翻转,单词字母顺序不变:

    function absort($str){//单词不变,字母翻转
        $str_arr = explode(" ",$str);
        $str1 = "";
        $len = count($str_arr);
        for($i=$len;$i--;$i>0){
            $str1 .=$str_arr[$i]." ";
        }
        return $str1;
    }
    echo absort($str);

    结果:

    houhou is haha

    2、整个字符串字母全部翻转:这里有两个方法

    //方法一:
    function absort1($str){
        $len = strlen($str);
        for($i=$len;$i--;$i>=0){
            $newstr .= $str{$i};
        }
        return $newstr;
    }
    echo absort1($str);
    
    //方法二:
    echo strrev($str)

    结果:

    uohuoh si ahah

    3.单词顺序不变,单词字母翻转:

    function absort2($str){
        $arr = explode(" ",$str);
        $newstr = "";
        $arr1 = array();
        $len=count($arr);
        for($m=0;$m<$len;$m++){
          //for($m=$len;$m--;$m>=0){//如果倒序查询就是按字符串翻转了
        //这里调用了absort1的方法实现单词字母的翻转
        $arr1[$m] = absort1($arr[$m]);
        $newstr .= $arr1[$m]." ";
        }
        return $newstr;
    }
    echo absort2($str);

    结果:

    ahah si uohuoh

    4、实现中文翻转:

    function getRev($str,$encoding='utf-8'){
        $result = '';
        $len = mb_strlen($str);
        for($i=$len-1; $i>=0; $i--){
            $result .= mb_substr($str,$i,1,$encoding);
        }
        return $result;
    }
    $string = 'OK    你是正确的Ole';
    echo getRev($string);

    结果:

    elO的确正是你 KO
  • 相关阅读:
    HDU 2602
    ZOJ 1074 最大子矩阵和
    POJ 3903
    最大子段和
    HDU 1052
    CodeForces 18C
    CodeForces 546B-Soldier and Badges
    UVA 11462-Age sort
    Codeforces Round #326 (Div. 2)-Duff in Love
    Codeforces Round #327 (Div. 2)-Wizards' Duel
  • 原文地址:https://www.cnblogs.com/colorstory/p/2681332.html
Copyright © 2011-2022 走看看