切断一个字符串的末尾

时间:2014-03-11 01:07:23

标签: c# string trim

我需要弄清楚如何删除字符串的结尾。唯一的麻烦是,字符串本身没有设置。我想保留的只是字符串中的前3-4个字符。

string Location = "110 - Main Road";
string Location = "123 - Highway";
string Location = "234 - My House";

也可能是;

string Location = "1120 - Main Road";

我知道如果我可以将它减少到前4个字符,我可以使用.Trim()删除空格,如果它只有3个字符,但我不知道如何将其删除为前4个字符?

7 个答案:

答案 0 :(得分:4)

您可以使用Split并获取您的电话号码:

string Location = "1120 - Main Road";
int number = int.Parse(Location.Split()[0]);

如果数字前面没有空格,这应该有效。如果有,则使用StringSplitOptions.RemoveEmptyEntries

int number = int.Parse(Location.Split(new []{ ' ' }, 
              StringSplitOptions.RemoveEmptyEntries)[0]);

答案 1 :(得分:2)

您可以使用String.Split()函数根据分隔符-拆分字符串,然后如果您希望将其置于整数变量中,则可以将字符串的第一部分转换为整数。

解决方案1:如果您希望将字符串的第一部分作为字符串获取。

string Location = "11056 - Main Road";
Location = Location.Split('-')[0].Trim();

解决方案2:如果您想将字符串的第一部分作为整数值。

string Location = "11056 - Main Road";
int num;
int.TryParse(Location.Split('-')[0],out num);

答案 2 :(得分:2)

拆分空格,然后先抓住任何东西,忽略其余部分。

string GrabNumber(string input)
{
    return input.Split(' ')[0];
}

假设您想要它作为整数,您可以更进一步:

int GrabNumber(string input)
{
    return int.Parse(input.Split(' ')[0]);
}

答案 3 :(得分:2)

只需使用Substring进行String.IndexOf通话,例如

using System;
using System.Collections.Generic;
public class Test
{
    public static void Main()
    {

        List<string> strings  = new List<string>();
        strings.Add("110 - Main Road");
        strings.Add("1104 - Main Road");
        strings.Add("11088 - Main Road");

        foreach(string s in strings){
            Console.WriteLine(s.Substring(0,s.IndexOf("-",0)-1));

        }
    }
}

这样即使街道号码长4,5,6,7个字符,这仍然有用

答案 4 :(得分:1)

如果你只想要前4个字符,你可以这样做:

Location = Location.Substring(0, 4);

第一个参数是起始位置,第二个参数是长度。

答案 5 :(得分:0)

使用字符串的子字符串函数(startIndex,numberOfCharToKeep),如下所示:

string Location = "110 - Main Road";
string NewLocation = Location.SubString(0,4); 

这可以保留你的前4个字符

答案 6 :(得分:0)

取决于您的输入的可靠性。如果您在数字后总是有空格,您可以使用IndexOf找到该位置。但是,每当我使用字符串时,我更喜欢正则表达式。以下是两种方法的示例:

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main(string[] args)
    {
        string[] locations = 
        { 
            "110 - Main Road", 
            "123 - Highway", 
            "234 - My House", 
            "1120 - Main Road" 
        };

        Regex r = new Regex(@"^\d+");

        foreach (string location in locations)
        {
            Console.WriteLine(location.Substring(0, location.IndexOf(' ')));
            Console.WriteLine(r.Match(location).Captures[0].Value);
        }
    }
}