[英]C# string split
我有一个字符串=“google.com 220 USD 3d 19h”。
我想提取“.com”部分.......
什么是最简单的方法来操纵split string方法来获得这个结果?
我猜你要么提取字符串的域名或TLD部分。 这应该做的工作:
var str = "google.com 220 USD 3d 19h";
var domain = str.Split(' ')[0]; // google.com
var tld = domain.Substring(domain.IndexOf('.')) // .com
替代的想法
string str = "google.com 220 USD 3d 19h";
string match = ".com";
string dotcomportion = str.Substring(str.IndexOf(match), match.Length);
好吧,如果你可以假设空间是分离器就像它一样容易
满满的
char [] delimiterChars = {''}; //使用所以你可以指定更多delims string [] words = full.Split(delimiterChars,1); //只用空格分割一个单词
string result = words [0] //这是你可以访问它的方法
假设你想要顶级域名:
string str = "google.com 220 USD 3d 19h";
string tld = str.Substring(str.LastIndexOf('.')).Split(' ')[0];
Console.WriteLine(tld);
输出:
.com
这会考虑子域。
如果通过提取意味着删除,则可以使用Replace方法
var result = str.Replace(“。com”,“”);
我知道你问过使用Split方法,但我不确定这是最好的路线。 拆分字符串将分配至少5个立即被忽略的新字符串,然后必须等待,直到GC被释放。 你最好只使用索引到字符串中,然后拉出你需要的东西。
string str = "google.com 220 USD 3d 19h";
int ix = str.IndexOf( ' ' );
int ix2 = str.IndexOf( '.', 0, ix );
string tld = str.Substring( ix2, ix - ix2 );
string domain = str.Substring( 0, ix );
使用Regex将是最好的选择,但如果你想使用Split那么
var str = "google.com 220 USD 3d 19h";
var str1 = str.Split(' ')[0];
var str2 = str1.Split('.')[0];
Console.WriteLine(str1.Replace(str2, string.Empty));
我想不出世界上你想要将String.Split
用于此目的的原因。 使用正则表达式可以最好地解决此问题。
这是一个小程序,演示了如何执行此操作:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
String foo = "google.com 220 USD 3d 19h";
Regex regex = new Regex(@"(.com)", RegexOptions.IgnoreCase);
Match match = regex.Match(foo);
if (match.Success)
Console.WriteLine(match.Groups[1].Value);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.