2017-10-14 82 views
0

我試圖從字符串的整數部分中刪除第一個0。 IF "CATI-09100"已將0先在interger部分刪除,字符串將爲"CATI-9100"。否則不會改變。我試過使用substring。但我需要更好和有效的方式來做到這一點。另外,"CATI-"將在每個字符串中。任何提示都可以。從包含數字和字母的字符串中替換第一個出現的0

我想下面幾行:

strICTOID = Convert.ToString(drData.GetValue(0).Equals(System.DBNull.Value) ? string.Empty : drData.GetValue(0).ToString().Trim()); 
      if (strICTOID.Length > 0) 
      { 
       indexICTO = strICTOID.IndexOf("-"); 


      } 
+0

你確定你想從字符串的整數部分刪除第一個0?也就是說,如果你的字符串是「CATI-9102」,你真的希望它返回「CATI-912」嗎?也許你只是想刪除前導零。如果有兩個前導零 - 「CATI-0020」 - 你想要「CATI-020」還是「CATI-20」? – FarmerBob

回答

2

使用一個簡單的字符串替換。

string text = "CATI-09100"; 

string newText = text.Replace("-0", "-"); // CATI-9100 
+0

我們不需要檢查0是否先存在? –

+0

這樣它就不會破壞那些不包含0的字符串。雖然您的解決方案很簡單,但很簡單。喜歡它 –

+0

它不會更改字符串,如果它沒有找到零 –

2

你可以使用像這 -

string check = indexICTO.Split('-')[1]; // will split by "-" 
    if(check[0].Equals("0"))   // will check if the charcter after "-" is 0 or not 
     indexICTO = indexICTO.Replace("-0", "-"); 
0

這是一個新秀方式,但肯定的作品。

 string myString , firstPart,secondPart ; 
     int firstNumValue; 


     myString = "CATI-09994"; 
     string[] parts = myString.Split('-'); 
     firstPart = parts[0]; 
     secondPart = parts[1]; 

     firstNumValue = int.Parse(secondPart.Substring(0, 1)); 

     if(firstNumValue == 0){ 
      secondPart = secondPart.Remove(0,1); 
     } 

     Console.WriteLine(firstPart+"-"+secondPart); 
1

,如果你想在一個整數,你可以做到這一點的開頭刪除所有零點:

your_string = Regex.Replace(your_string, @"-0+(\d+)", "$1"); 
//CATI-009100 --> CATI-9100 
//CATI-09100 --> CATI-9100 
//CATI-9100 --> CATI-9100 
相關問題