当前位置: 首页 > 编程笔记 >

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

狄冥夜
2023-03-14
本文向大家介绍perl中的字符串操作函数chomp与chop介绍,包括了perl中的字符串操作函数chomp与chop介绍的使用技巧和注意事项,需要的朋友参考一下

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

 类似资料:
  • strings 标准库提供了很多字符串操作相关的函数。这里提供的几个例子是让你先对这个包有个基本了解。 package main import s "strings" import "fmt" // 这里给fmt.Println起个别名,因为下面我们会多处使用。 var p = fmt.Println func main() { // 下面是strings包里面提供的一些函数实例。注意这里

  • 1. 字符串操作函数 程序按功能划分可分为数值运算、符号处理和I/O操作三类,符号处理程序占相当大的比例,符号处理程序无处不在,编译器、浏览器、Office套件等程序的主要功能都是符号处理。无论多复杂的符号处理都是由各种基本的字符串操作组成的,本节介绍如何用C语言的库函数做字符串初始化、取长度、拷贝、连接、比较、搜索等基本操作。 1.1. 初始化字符串 #include <string.h> v

  • 问题内容: 经常有人告诉我们,正则表达式运行缓慢,应尽可能避免使用。 但是,考虑到自己做一些字符串操作的开销( 不是在谈论算法错误-这是另一回事 ),尤其是在或(也许)有什么 限制的 情况下,在这种情况下,我们可以认为字符串操作是更好的方法替代?哪些正则表达式特别使CPU贪婪? 例如,对于下面的,,或者,你会怎么推荐 正则表达式可能会更快: 或基于解决方案? 或扫描算法 但是关于 电子邮件验证正则

  • 最大字符串为512M,但是大字符串非常不建议。

  • 本文向大家介绍Python中常用操作字符串的函数与方法总结,包括了Python中常用操作字符串的函数与方法总结的使用技巧和注意事项,需要的朋友参考一下 例如这样一个字符串 Python,它就是几个字符:P,y,t,h,o,n,排列起来。这种排列是非常严格的,不仅仅是字符本身,而且还有顺序,换言之,如果某个字符换了,就编程一个新字符串了;如果这些字符顺序发生变化了,也成为了一个新字符串。 在 Pyt

  • 本文向大家介绍PHP常见字符串操作函数与用法总结,包括了PHP常见字符串操作函数与用法总结的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP常见字符串操作函数与用法。分享给大家供大家参考,具体如下: 一、字符串的格式化 1、字符串的格式化 trim()函数可以去除字符串的开始位置和结束位置的空格,并将结果字符串返回,默认情况下去除的字符是换行符和回车符(\n和\r),水平和垂直制表符(