您好,登錄后才能下訂單哦!
學(xué)的編程語言越來越多,各種相似的函數(shù)和語法也容易混淆,這里以各種常用的編程語言分割字符串并做遍歷來對比。
一、PHP
explode(separator, string [ ,limit ])
foreach ($arr as $i)
<?php $str = "1.2.3.4.5"; $strs1 = explode(".",$str); foreach ($strs as $i ){ echo $i."\n"; } /* 輸出結(jié)果為 1 2 3 4 5 */ ?>
上述例子中l(wèi)imit參數(shù)省略,如果limit設(shè)為0則輸出結(jié)果是1.2.3.4.5,即$str作為數(shù)組$strs的一個值
如果limit設(shè)為2,則輸出結(jié)果為:
1
2.3.4.5
如果limit設(shè)為-2,則輸出結(jié)果為:
1
2
3
PHP每條語句后面的分號(;)是不能省略的。
二、Javascript
string.split(separator [,limit])
for (i in arr)
javascript的limit一般只能是正數(shù)
<script> str = "1.2.3.4.5"; strs = str.split("."); for (i in strs){ 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的數(shù)組是用@表示的
四、Python
string.split(separator [ , limit])
for i in arr
str = "1.2.3.4.5" strs = str.split(".") for i in strs: print (i)
Python要求嚴(yán)格的對齊 ,并且注意for語句的冒號(:)
五、Java:
string.split(separator [,limit] )
for ( i : arr )
String str="1.2.3.4.5"; String[] strs=str.split("."); for (String i : strs) { System.out.println(i); }
六、Linux shell
for i in ${arr[@]}
在linux shell中,split主要是用于分割文件的,不是用于分割字符串。所以這里使用另一種方法。
下面例子中,變量$IFS存儲系統(tǒng)默認(rèn)分隔符,下例中將其改為“.",并用oldIFS備份默認(rèn)的分隔符以便恢復(fù)默認(rèn)。
str="1.2.3.4.5" oldIFS=”$IFS” IFS="." strs=($str) IFS=”$oldIFS” for i in ${strs[@]} do echo $i done
也可以用tr命令來實(shí)現(xiàn):
str="1.2.3.4.5" strs=($(tr "." " " <<< $str)) for s in ${strs[@]} do echo $s done
注意: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 ($i in $strs){ echo $i }
Powershell作為一門新的語言,吸收了各家之長,語法上也比較通用。
八、windows批處理BAT
for %%i in ("%set%")
@echo off set a=1.2.3.4.5 for /f "delims=. tokens=1-5" %%i in ("%a%") do ( echo %%i echo %%j echo %%k echo %%l echo %%m ) pause
bat是比較古老的了,如果用空格等分割則可以比較方便循環(huán),本例中是以“.”分割,批處理無法直接循環(huán)
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。