溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

各種編程語言下字符串分割及foreach遍歷對比

發(fā)布時間:2020-08-05 03:20:43 來源:網(wǎng)絡(luò) 閱讀:998 作者:orzzz 欄目:開發(fā)技術(shù)

學(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)

向AI問一下細(xì)節(jié)

免責(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)容。

AI