字符串左移
来源:互联网 发布:任加踢法 知乎 编辑:程序博客网 时间:2024/06/05 19:18
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。
通过PHP字符串截取扩展相关函数
public function leftMoveString($string, $num) { return substr($string, $num) . substr($string, 0, $number);}
public function leftMoveString($string, $num) { $string .= $string; $length = strlen($string); return substr($string, $num, $length); }
substr 返回字符串的子串
string substr(string $string, int $start[, int $length])//返回字符串string由$start和$length参数指定的子字符串参数 $start **1 $start 为非负数,返回的字符串将从$string的$start位置开始,从0开始计算,例如,在字符串"abcdef"中,在位置0的字符串是"a",位置2的字符串是"c"。**2 $start 为负数,返回的字符串将从$string结尾处向前数第$start个字符开始。3 如果$string的长度小于$start, 将返回false <?php$rest = substr("abcdef", -1); // 返回 "f"$rest = substr("abcdef", -2); // 返回 "ef"$rest = substr("abcdef", -3, 1); // 返回 "d"$rest = substr("abcdef", 0); // 返回 false?>length 1 length为正数,返回的字符串将从$start处开始最多包括$length个字符(取决于$string的长度)2 length为负数,$string末尾处的$length个字符将会被省略,即截取末尾处$length之前的字符串(若$start是负数则从字符串尾部算起)。如果$start不在这段文本中,那么将返回false。3 length为0,false,null 返回一个空字符串4 没有提供$length,返回的子字符串将从$start位置开始直到字符串结尾 <?php$rest = substr("abcdef", 0, -1); // 返回 "abcde"$rest = substr("abcdef", 2, -1); // 返回 "cde"$rest = substr("abcdef", 4, -4); // 返回 ""$rest = substr("abcdef", -3, -1); // 返回 "de"?>
引申 切割字符串 explode, str_split
str_split — 将字符串转换为数组
说明
array str_split(string $string [, int $split_length = 1])
参数 split_length 每一段的长度
返回值 如果指定了可选的 split_length 参数,返回数组中的每个元素均为一个长度为 split_length 的字符块,否则每个字符块为单个字符。
如果 split_length 小于 1,返回 FALSE。如果 split_length 参数超过了 string 超过了字符串 string 的长度,整个字符串将作为数组仅有的一个元素返回。
<?php$str = "Hello Friend";$arr1 = str_split($str);$arr2 = str_split($str, 3);print_r($arr1);print_r($arr2);//arr1Array( [0] => H [1] => e [2] => l [3] => l [4] => o [5] => [6] => F [7] => r [8] => i [9] => e [10] => n [11] => d)//arr2Array( [0] => Hel [1] => lo [2] => Fri [3] => end)?>
explode — 使用一个字符串分割另一个字符串
说明
array explode ( string $delimiter , string $string [, int $limit ] )
此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 delimiter 作为边界点分割出来。
参数 delimiter 边界上的分隔字符
limit
1 limit 为正数,则返回的数组包含最多limit个元素,而最后那个元素将包含string的剩余部分。
2 limit为负数,则返回除了最后的-limit个元素外的所有元素。
3 limit为0,则会被当作1
返回值
此函数返回由字符串组成的 array,每个元素都是 string 的一个子串,它们被字符串 delimiter 作为边界点分割出来。
如果 delimiter 为空字符串(”“),explode() 将返回 FALSE。 如果 delimiter 所包含的值在 string 中找不到,并且使用了负数的 limit , 那么会返回空的 array, 否则返回包含 string 单个元素的数组。
<?php// 示例 1$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";$pieces = explode(" ", $pizza);echo $pieces[0]; // piece1echo $pieces[1]; // piece2// 示例 2$data = "foo:*:1023:1000::/home/foo:/bin/sh";list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);echo $user; // fooecho $pass; // *?><?php/* A string that doesn't contain the delimiter will simply return a one-length array of the original string. */$input1 = "hello";$input2 = "hello,there";var_dump( explode( ',', $input1 ) );var_dump( explode( ',', $input2 ) );// 以上例程会输出:array(1)( [0] => string(5) "hello")array(2)( [0] => string(5) "hello" [1] => string(5) "there")?><?php$str = 'one|two|three|four';// 正数的 limitprint_r(explode('|', $str, 2));// 负数的 limit(自 PHP 5.1 起)print_r(explode('|', $str, -1));?>以上例程会输出:Array( [0] => one [1] => two|three|four)Array( [0] => one [1] => two [2] => three)
implode — 将一个一维数组的值转化为字符串
说明
string implode ( string $glue , array $pieces )string implode ( array $pieces )
用 glue 将一维数组的值连接为一个字符串。
参数 glue 默认为空的字符串。
pieces 你想要转换的数组。
返回值 返回一个字符串,其内容为由 glue 分割开的数组的值。
<?php$array = array('lastname', 'email', 'phone');$comma_separated = implode(",", $array);echo $comma_separated; // lastname,email,phone// Empty string when using an empty array:var_dump(implode('hello', array())); // string(0) ""?>
chunk_split — 将字符串分割成小块
说明
string chunk_split ( string $body [, int $chunklen = 76 [, string $end = "\r\n" ]] )
使用此函数将字符串分割成小块非常有用。例如将 base64_encode() 的输出转换成符合 RFC 2045 语义的字符串。它会在每 chunklen 个字符后边插入 end。
参数
body 要分割的字符。
chunklen 分割的尺寸。
end 行尾序列符号。
返回值
返回分割后的字符。
<?php$str = "Shanghai";echo chunk_split($str,1,"."); // S.h.a.n.g.h.a.i.?>
- 字符串循环左移
- 循环左移字符串
- 循环左移字符串
- 字符串循环左移
- 字符串循环左移
- 字符串左移代码
- 字符串左移
- 循环左移字符串
- 字符串循环左移
- 字符串循环左移
- 1218: 字符串左移
- 字符串左移
- 字符串左移
- 循环左移字符串
- 字符串循环左移
- 字符串循环左移
- 字符串循环左移
- 字符串循环左移
- Java笔记1
- 机器学习入门之逻辑回归
- rsbo和rsbo2的wp
- 路由与网关(缺省网关,默认网关)
- android surfaceview ffmpeg的渲染简单说明
- 字符串左移
- 排序之选择排序法
- Jupyter Notebook 安装及应用
- VC下的Unicode编程
- unity多线程渲染优化想法。
- ActionFilter递归链剖析
- oracle日期格式转换及日期截取,按月统计,按日统计
- 并查集总结
- 044day(异或在特殊密码锁问题上的应用)