我需要弄清楚如何删除字符串的结尾。唯一的麻烦是,字符串本身没有设置。我想保留的只是字符串中的前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个字符?
答案 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);
}
}
}