문제

문자열 = "Google.com 220 USD 3D 19H"가 있습니다.

".com"부분 만 추출하고 싶습니다 .......

이 결과를 얻기 위해 분할 문자열 메소드를 조작하는 가장 쉬운 방법은 무엇입니까?

도움이 되었습니까?

해결책

도메인 이름을 추출하고 싶거나 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 문자열 [] words = full.split (delimiterchars, 1)를 지정할 수 있도록 사용되었습니다. // 공간으로 하나의 단어 만 나눕니다

문자열 결과 = 단어 [0] // 이것이 액세스하는 방법입니다.

Extract로 제거를 의미하는 경우 교체 방법을 사용할 수 있습니다.

var result = str.replace ( ". com", "");

분할 방법을 사용하는 것에 대해 물었지만 그것이 최고의 경로인지 확실하지 않습니다. 문자열을 분할하면 즉시 무시되는 적어도 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 );

최상위 도메인을 원한다고 가정합니다.

string str = "google.com 220 USD 3d 19h";
string tld = str.Substring(str.LastIndexOf('.')).Split(' ')[0];
Console.WriteLine(tld);

산출:

.com

이것은 하위 도메인을 고려합니다.

regex를 사용하는 것이 가장 좋은 옵션이지만 분할을 사용하려면

  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 ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top