2011-01-31 151 views
4

我使用.NET 2.0和我有以下字符串字符串操作

string 1 = "test (10)" 

我有一個正則表達式從字符串條10號,我再要增加它,並插入到該以前的字符串的括號來創建一個新的字符串,以便:

string 2 = "something else(11)" 

非常感謝, 導航

+0

我們可以看一下你的正則表達式? – BoltClock 2011-01-31 11:42:30

+0

那麼covnert剝離10到int,增加他們用新數字替換以前的數字? – Lloyd 2011-01-31 11:42:37

回答

2

如果字符串總是要具有相同的格式,你可以做我t等這樣的:

int myNumber = 11; 
string two = String.Format("test ({0})", myNumber); 

這是假設你已經有了正則表達式,你在你的問題,並根據您的新1。

編輯

例如新增加了它信息:

int myNumber = 11; 
int myNewString = "Test"; 
string two = String.Format("{0} ({1})", myNewString, myNumber); 
0

我不知道你想做的事......但保持簡單

var value = ExtractValue(str1); 
value++; 
string str2 = "test (" + value + ")"; 
0

讓一個類處理它..就像這樣。

TestNumbers testNumbers = new TestNumbers(1); testNumbers.Increment(1); testNumbers.Increment(1); testNumbers.GetNumber(); testNumbers.ToString();

public class TestNumbers 
    { 
     private int number = 0; 

     public TestNumbers(int number) 
     { 
      this.number = number; 
     } 

     public override string ToString() 
     { 
      return "Test (" + number + ")"; 
     } 

     public void Increment(int incrementStep) 
     { 
      number += incrementStep; 
     } 

     public int GetNumber() 
     { 
      return number; 
     } 
    } 
0

你做下面的代碼:

String s1 = string.format("{0} ({1})",yourstring,value); 
0

簡單regex的解決方案可能是:

string inputString = "test (10)"; 

Regex regex = new Regex(@"(.+)\((?<Digit>\d+)\)"); 
Match match = regex.Match(inputString); 

int i = Convert.ToInt32(match.Groups["Digit"].Value); 
i++; 

string replacePattern = "$1(" + i + ")"; 
string newString = regex.Replace(inputString, replacePattern); 

Console.WriteLine(newString);