繁体   English   中英

C#字符串拆分

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM