学的编程语言越来越多,各种相似的函数和语法也容易混淆,这里以各种常用的编程语言分割字符串并做遍历来对比。

一、PHP

explode(separator, string [ ,limit ])

foreach ($arr as $i)

<?php$str="1.2.3.4.5";$strs1=explode(".",$str);foreach($strsas$i){echo$i."\n";}/*输出结果为12345*/?>

上述例子中limit参数省略,如果limit设为0则输出结果是1.2.3.4.5,即$str作为数组$strs的一个值

如果limit设为2,则输出结果为:

1

2.3.4.5

如果limit设为-2,则输出结果为:

1

2

3

PHP每条语句后面的分号(;)是不能省略的。

二、Javascript

string.split(separator [,limit])

for (i in arr)

javascript的limit一般只能是正数

<script>str="1.2.3.4.5";strs=str.split(".");for(iinstrs){document.write(strs[i]+"<br>");}</script>

三、Perl

split /pattern/, string [ , limit ]

foreach $i (@arr)

$str="1.2.3.4.5";@strs=split(/\./,$str);#注意反斜杠foreach$i(@strs){print$i."\n";}

Perl的数组是用@表示的

四、Python

string.split(separator[ , limit])

for i in arr

str="1.2.3.4.5"strs=str.split(".")foriinstrs:print(i)

Python要求严格的对齐,并且注意for语句的冒号(:)

五、Java:

string.split(separator [,limit] )

for ( i : arr )

Stringstr="1.2.3.4.5";String[]strs=str.split(".");for(Stringi:strs){System.out.println(i);}

六、Linux shell

for i in ${arr[@]}

在linux shell中,split主要是用于分割文件的,不是用于分割字符串。所以这里使用另一种方法。

下面例子中,变量$IFS存储系统默认分隔符,下例中将其改为“.",并用oldIFS备份默认的分隔符以便恢复默认。

str="1.2.3.4.5"oldIFS=”$IFS”IFS="."strs=($str)IFS=”$oldIFS”foriin${strs[@]}doecho$idone

也可以用tr命令来实现:

str="1.2.3.4.5"strs=($(tr"."""<<<$str))forsin${strs[@]}doecho$sdone

注意:Linux赋值时等号两边不能有空格

七、Powershell

String.split(seperator [ , limit ] [ , option] )

foreach ( $i in $arr )

option选项比较少用,主要是用于去除空的entry(可以这么用:

$option =System.StringSplitOptions]::RemoveEmptyEntries)

$str="1.2.3.4.5"$strs=$str.split(".")foreach($iin$strs){echo$i}

Powershell作为一门新的语言,吸收了各家之长,语法上也比较通用。

八、windows批处理BAT

for %%i in ("%set%")

@echooffseta=1.2.3.4.5for/f"delims=.tokens=1-5"%%iin("%a%")do(echo%%iecho%%jecho%%kecho%%lecho%%m)pause

bat是比较古老的了,如果用空格等分割则可以比较方便循环,本例中是以“.”分割,批处理无法直接循环