簡體   English   中英

如何僅剪切字符串中的第一個字符

[英]How to cut only the FIRST character in a string

所以在這種情況下,我想刪掉第一個“ 1”。 字符串中,但不能跟在任何“ 1”之后。 我想知道這是否有可能。

因此,我正在將其轉換為字符串,並且我想知道是否有一種方法只能刪除開頭的“ 1”。 並且沒有任何跟隨者。

因此,我的腳本會根據某些條件動態分配一個數字,例如1、1.1、1.2、2、3、3.1。 它目前在所有內容的開頭都添加了1.。 所以1 = 1.1,2.1 = 1.2.1,依此類推。

有沒有一種方法可以強制它僅取出第一個而不跟隨任何一個? 這是我的資料來源:

 $str = (string)$i; $str = $i;
 $prepend = $parentPrepend ? 
                 $parentPrepend . '.' . $i 
               : $str = ltrim($str, '\1');
 $i++;  

您的ltrim代碼不起作用的原因是,您傳入的\\1與字符1 \\1指的是其ASCII碼是字符1作為是不一樣的1的ASCII代碼實際上是\\49

像這樣修改您的代碼:

 ltrim($str, '1');

這應該從字符串的左邊開始修剪所有的1 s。

但是,您應該知道ltrim會刪除字符串左側的所有匹配字符,而不僅僅是第一個!

如果只想要第一個,則應該使用substr ,並進行測試以確保它是1

if(substr($str, 0, 1) == '1')
    $str = substr($str, 1);

而且,如果您也想刪除句點,則只需修改代碼以包含該句點(並查看前2個字符而不是僅第一個字符)

if (strlen($str) > 2 && substr($str, 0, 2) == '1.')
    $str = substr($str, 2);

使用strpos檢查1.是否在開頭。 如果是,則使用substr返回字符串減去1。

$string = '1.1';

if (strpos($string, '1.') === 0) {
  $string = substr($string, 2);
}

var_dump($string);

您還可以將str_replace與約束一起使用:

$new_string = str_replace ('1.' , '' , $your_string, 1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM