C#中的字符串实用程序

时间:2014-01-04 21:08:50

标签: c# string

我正在学习C#中的字符串实用程序,我有一个替换字符串部分的方法。

使用replace方法我需要输出

等输出

“旧文件名:file00”

“新文件名:file01”

取决于用户想要将其更改为。

我正在寻求帮助,使方法(NextImageName)只替换数字,而不是文件名。

class BuildingBlock
{
    public static string ReplaceOnce(string word, string characters, int position)
    {
        word = word.Remove(position, characters.Length);
        word = word.Insert(position, characters);
        return word;
    }

    public static string GetLastName(string name)
    {
        string result = "";
        int posn = name.LastIndexOf(' ');
        if (posn >= 0) result = name.Substring(posn + 1);
        return result;
    }

    public static string NextImageName(string filename, int newNumber)
    {
        if (newNumber > 9)
        {
            return ReplaceOnce(filename, newNumber, (filename.Length - 2))
        }
        if (newNumber < 10)
        {

        }
        if (newNumber == 0)
        {

        }
    }

其他“if”语句现在是空的,直到我找到第一个如何做。

3 个答案:

答案 0 :(得分:1)

执行此操作的正确方法是使用Regular Expressions

理想情况下,您可以将“file”与“file00”中的“00”分开。然后取“00”,将其转换为Int32(使用Int32.Parse()),然后使用String.Format()重建字符串。

答案 1 :(得分:0)

public static string NextImageName(string filename, int newNumber)
{
    string oldnumber = "";
    foreach (var item in filename.ToCharArray().Reverse())
        if (char.IsDigit(item))
            oldnumber = item + oldnumber ;
        else
            break;

    return filename.Replace(oldnumber ,newNumber.ToString());
}

答案 2 :(得分:0)

public static string NextImageName(string filename, int newNumber)
{
    int i = 0;
    foreach (char c in filename)  // get index of first number
    {
        if (char.IsNumber(c))
            break;
        else
            i++;
    }

    string s = filename.Substring(0,i);  // remove original number
    s = s + newNumber.ToString();        // add new number

    return s;

}