[英]Cut off the end of a string
我需要弄清楚如何删除字符串的结尾。 唯一的麻烦是,字符串本身未设置。 我只想保留字符串中的前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.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 GrabNumber(string input)
{
return input.Split(' ')[0];
}
假设您希望将其作为整数,可以更进一步:
int GrabNumber(string input)
{
return int.Parse(input.Split(' ')[0]);
}
例如,只需使用带有String.IndexOf的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);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.