2017-10-14 83 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 
相关问题