perl中的字符串操作函数chomp与chop介绍_perl

chomp与chop都是用于去除字符串变量尾部的字符,但它们有各自的区别。

chomp函数对变量起作用,而此变量含有字符串。如果字符串结尾有换行符,chomp可以去掉它。这基本上就是它能完成的所有功能,如下例:

复制代码 代码如下:

$text="alineoftext\n      "; #也可以由<STDIN>输入
chomp($text);    #去掉换行符(\n)。

它非常有用,基本上你的每一个程序都会用到它。如你将知道,这是将字符串末尾换行符去掉的最好方法。基于 Perl 中的一条基本原则:在需要使用变量的地方,可以使用赋值表达式来代替。我们有更简单的使用 chomp 的方法。Perl 首先做赋值运算,再使用这个变量。因此使用 chomp 的最常用方法是:

复制代码 代码如下:

chomp($text=<STDIN>);    #读入,但不含换行符
$text=<STDIN>;
chomp($text);

#同上,但用两步完成

第一眼见到时,第一种组合的方法看起来复杂些。如果把上述其看成两步操作,读一行再  chomp,那写成两个语句的方法看起来自然些。如果将其看作一个操作,读入一行但不包括换行符,那写成一个语句的方法更恰当。由于绝大多数 Perl 程序员使用第一种写法,你也应该使用它。

chomp 是一个函数。作为一个函数,它有一个返回值,为移除的字符的个数。这个数字基本上没什么用:

复制代码 代码如下:

$food=<STDIN>;
$betty=chomp($food); #得到值 1

如上,在使用 chomp 时,可以使用或不使用括号()。这又是 Perl 中的一条通用规则:除非移除它们时含义会变,否则括号是可以省略的。如果结尾有两个或两个以上的换行符,chomp 仅去掉一个。如果没有,那什么也不做,返回 0。这种情况在一次读入一行时不会发生,但使用了输入分隔符(input  separator)($/)(其不为换行符(\n)),read 函数,或者将一些字符串结合起来就有可能发生。

在编写Perl程序代码的时候,也许你会有时会用chop() 函数来去掉<>输入的换行符"\n",有时候使用chomp() 函数。其实上面的用法都可以达到预期的效果,但它们也有细微的差别。
 
chop()函数,只是去除最后一个字符。
chomp()函数,就要首先判断最后一个字符是不是为"\n",它才去除。

chop函数会砍掉字符串变量的最后一个字符,并返回砍掉的字符,chop函数不管字符串里是什么都会剪短它,而chomp函数则更有选择性一些。不能chop直接量,只能chop变量。
用法:

复制代码 代码如下:

chop VARIABLE
chop LIST
chop

例子:
如果chop一列LIST变量,那么列表中的每个字符串都会被剪短:

复制代码 代码如下:

@lines=`cat myfile`;
chop @lines;

在最常见的情况下,chop可以用substr来表示:

复制代码 代码如下:

$last_char = chop($var);
$last_char = substr($var, -1, 1, ""); # 同上

再来看下面的完整的例子:

复制代码 代码如下:

#!/usr/bin/perl
$string1 = "This is test";
$retval  = chop( $string1 );
print " Choped String is : $string1\n";
print " Character removed : $retval\n";

结果:

复制代码 代码如下:

Choped String is : This is tes
Number of characters removed : t

时间: 2024-09-20 08:04:31

perl中的字符串操作函数chomp与chop介绍_perl的相关文章

c语言中的字符串操作函数

函数名: stpcpy 功  能: 拷贝一个字符串到另一个 用  法: char *stpcpy(char *destin, char *source); 程序例: #include <stdio.h> #include <string.h> int main(void) {    char string[10];    char *str1 = "abcdefghi";    stpcpy(string, str1);    printf("%s/n

asp.net中C#字符串操作函数与方法

(1)取字符串长度 <string>.Length; (2)字符串转为比特码 GetBytes(<string>) (3)字符串相加 推荐StringBuilder sb = new StringBuilder();sb.Append(<string>); (4)截断字符串的一部分 变量.SubString(起始位置,截取位数); (5)查指定位置是否为空字符 char.IsWhiteSpace(字符串变量,位数): (6)查字符是否是标点符号 char.IsPunct

Linux下常用C语言字符串操作函数

stroul, strdup snprintf() atio   C中常用字符串操作函数 #include <string.h>   size_t strlen(const char *s)   测量字符串长度s的实际长度. 例如s[20]="abc",那么strlen(s)的结果是3,而不是20.这就是实际长度   char *strcat(const char *s1, const *s2)    将字符串s2连接到s1的尾部.从s1的/0开始.   int strcm

JavaScript中常见的字符串操作函数及用法汇总_javascript技巧

本文实例总结了JavaScript中常见的字符串操作函数及用法.分享给大家供大家参考.具体分析如下: 最近几次参加前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等.如果你经常参加笔试或者也是一个过来人,相信你也跟我一样,发现字符串的处理是前端招聘过程中最常见的题型之一.这些题有一个特点,站在考官的角度去考虑,它考的不是你会不会,而是你能不能在不借用XX手册或者XX指南再或者百度谷歌的情况下,用比较简洁的方式写出答案来.可惜的是,很多开发人员,当然我也

字符串操作函数

函数|字符串 PHP3.0中的字符串操作功能是比较多的,重要的有以下这些: (1)echo,print,printf,sprintf 用于输出字符串.字符串中如果有变量名则被替换成其值. 后两个函数类似于C的同名函数. (2)strchr, strlen, strtok, strrchr, strrev, strstr, strtolower, strtoupper, substr, ucfirst 用的字符串操作函数,有些和C中的同名函数意义完全一致. strrev是把一个字符串翻转. str

PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)_php技巧

本文实例总结了PHP常用字符串操作函数.分享给大家供大家参考,具体如下: /*常用的字符串输出函数 * * echo() 输出字符串 * print() 输出一个或多个字符串 * die() 输出一条信息,并退出当前脚本 * printf() 输出格式化字符串 * sprintf() 把格式化的字符串写入到一个变量中 * */ //ucfirst //将字符串中的首字母转换为大写 $str="string"; echo ucfirst($str); echo "<hr&

php字符串操作函数入门篇

php教程字符串操作函数入门篇 1.字符串的定义与显示 定义:通过"",''来标志 显示:echo()和print(),但print()具有返回值值,1,而echo()没有,但echo比print()要快,print()能用在复合语句中. 2.字符串的格式化 printf(string $format[,mixed$args]) 第一参数是格式字符串,$args是要替换进来的值,prinf("%d",$num); 说明,如果想打印一个"%",必须

asp小偷程序中的字符串截取函数

函数|字符串|小偷程序 asp小偷程序中的字符串截取函数 以下是函数代码:'******************************************************************************** '    Function(公有) '    名称 :    字符串截取函数 '    作用 :    按指定首尾字符串截取内容(本函数为从左向右截取) '    参数 :    sContent ---- 被截取的内容 '        sStart ----

SQL点滴33—SQL中的字符串操作

原文:SQL点滴33-SQL中的字符串操作 计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student 字符串转换为大.小写lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写 select lower('I AM A STUDENT !') select upper('i am a student !') 截去字符串左.右侧空格