According to your comments the integer is always 7 digits and it is always the last item of the string.
In that case, just use Substring()
string test = "a b cdf 7654321";
string stringBefore = test.Substring(0, test.Length - 7); 
string integer = test.Substring(test.Length - 7);  
Substring just makes a string based on a portion of your original string.
EDIT
I was a little surprised to find there wasn't a built in way to easily split a string in to two strings based on an index (maybe I missed it).  I came up with a LINQ extension method that achieves what I was trying to do, maybe you will find it useful:
public static string[] SplitString(this string input, int index)
{
    if(index < 0 || input.Length < index)
        throw new IndexOutOfRangeException();
    return new string[] 
    {
        String.Concat(input.Take(input.Length - index)),
        String.Concat(input.Skip(input.Length - index))
    };      
}
I think I would rather use a ValueTuple if using C# 7, but string array would work too.
Fiddle for everything here