切断一根绳子的末端
本文关键字:一根 | 更新日期: 2023-09-27 17:49:18
我需要弄清楚如何删除字符串的结束。唯一的问题是,字符串本身没有设置。我只想保留字符串的前3-4个字符。
string Location = "110 - Main Road";
string Location = "123 - Highway";
string Location = "234 - My House";
也可以是;
string Location = "1120 - Main Road";
我知道如果我能把它缩短到前4个字符,如果只有3个字符,我可以使用.Trim()
删除空白,但我不知道如何把它缩短到前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]);
在空格处进行分割,然后截取先出现的内容,忽略其余内容。
string GrabNumber(string input)
{
return input.Split(' ')[0];
}
如果你想要一个整数,你可以更进一步:
int GrabNumber(string input)
{
return int.Parse(input.Split(' ')[0]);
}
您可以使用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);
只需对String使用Substring调用。例如,
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个字符,你可以这样做:
Location = Location.Substring(0, 4);
第一个参数是起始位置,第二个参数是长度
像这样使用string(startIndex,numberOfCharToKeep)的子字符串函数:
string Location = "110 - Main Road";
string NewLocation = Location.SubString(0,4);
这将使您的前4个字符
取决于你的输入有多可靠。如果你总是在数字之后有一个空格,你可以使用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);
}
}
}