it-swarm-ko.tech

C #에는 Java와 같은 String Tokenizer가 있습니까?

간단한 문자열 입력 구문 분석을 수행하고 있으며 문자열 토크 나이저가 필요합니다. 저는 C #을 처음 사용하지만 Java를 프로그래밍했으며 C #에 문자열 토크 나이저가 있어야하는 것이 당연합니다. 그렇습니까? 어 Where 어? 어떻게 사용합니까?

65
andrewrk

String.Split method 를 사용할 수 있습니다.

class ExampleClass
{
    public ExampleClass()
    {
        string exampleString = "there is a cat";
        // Split string on spaces. This will separate all the words in a string
        string[] words = exampleString.Split(' ');
        foreach (string Word in words)
        {
            Console.WriteLine(Word);
            // there
            // is
            // a
            // cat
        }
    }
}

자세한 내용은 C #에서 문자열 분할에 대한 Sam Allen의 기사 (성능, 정규식)을 참조하십시오.

115
Davy Landman

C #의 Split 메소드의 힘을 강조하고 특히 Java 배경에서 온 사람)과 더 자세한 비교를하고 싶습니다.

Java의 StringTokenizer는 단일 구분 기호 만 허용하지만 실제로 정규 표현식을 덜 필요로하는 여러 구분 기호로 분할 할 수 있습니다 (정규 표현식이 필요한 경우 반드시 정규 표현식을 사용하십시오!) 예를 들면 다음과 같습니다.

str.Split(new char[] { ' ', '.', '?' })

이것은 토큰 배열을 반환하는 세 가지 다른 구분 기호로 나뉩니다. 위 예제의 두 번째 매개 변수가 될 빈 배열을 제거 할 수도 있습니다.

str.Split(new char[] { ' ', '.', '?' }, StringSplitOptions.RemoveEmptyEntries)

Java의 String 토크 나이 저는 C #이 부족하다고 생각합니다 (적어도 Java 7에는이 기능이 있습니다)는 구분 기호를 토큰으로 유지하는 기능입니다 .C #의 Split은 토큰을 버립니다. 이것은 일부 NLP 응용 프로그램에서 중요 할 수 있지만보다 일반적인 응용 프로그램에서는 문제가되지 않을 수 있습니다.

21
demongolem

문자열의 분할 방법이 필요합니다. 실제로 Java의 토큰 화 클래스는 더 이상 사용되지 않으므로 Java의 문자열 분할 방법을 선호합니다.

18
Tim Jarvis

.NET Framework에서 가장 가까운 것은

 string.Split () 
3
Steve Morgan

복잡한 분할의 경우 정규식을 사용하여 일치 컬렉션을 만들 수 있습니다.

2
Stevo3000
_words = new List<string>(YourText.ToLower().Trim('\n', '\r').Split(' ').
            Select(x => new string(x.Where(Char.IsLetter).ToArray()))); 

또는

_words = new List<string>(YourText.Trim('\n', '\r').Split(' ').
            Select(x => new string(x.Where(Char.IsLetterOrDigit).ToArray()))); 
2
Skyler

Regex.Split(string,"#|#"); 사용

1
adr

Java의 방법과 비슷합니다.

Regex.Split(string, pattern);

어디

  • string-분할해야하는 텍스트
  • pattern-문자열 유형 패턴, 텍스트를 분할하는 것
0
neronovs

이것을 읽으십시오. 분할 함수에는 과부하가 있으며 배열은 분리 자로 구성됩니다 http://msdn.Microsoft.com/en-us/library/system.stringsplitoptions.aspx

0
Musa